security.yml 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. name: "security"
  2. on:
  3. pull_request:
  4. push:
  5. branches: [main]
  6. schedule:
  7. - cron: "0 2 * * *"
  8. permissions:
  9. contents: read
  10. concurrency:
  11. group: security-${{ github.event.pull_request.number || github.ref }}
  12. cancel-in-progress: true
  13. jobs:
  14. codeql:
  15. runs-on: ubuntu-latest
  16. strategy:
  17. fail-fast: false
  18. matrix:
  19. language: ["go", "actions"]
  20. permissions:
  21. actions: read
  22. contents: read
  23. pull-requests: read
  24. security-events: write
  25. steps:
  26. - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
  27. with:
  28. persist-credentials: false
  29. - uses: github/codeql-action/init@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2
  30. with:
  31. languages: ${{ matrix.language }}
  32. - uses: github/codeql-action/autobuild@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2
  33. - uses: github/codeql-action/analyze@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2
  34. grype:
  35. runs-on: ubuntu-latest
  36. permissions:
  37. security-events: write
  38. actions: read
  39. contents: read
  40. steps:
  41. - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
  42. with:
  43. persist-credentials: false
  44. - uses: anchore/scan-action@7037fa011853d5a11690026fb85feee79f4c946c # v7.3.2
  45. id: scan
  46. with:
  47. path: "."
  48. fail-build: true
  49. severity-cutoff: critical
  50. - uses: github/codeql-action/upload-sarif@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2
  51. with:
  52. sarif_file: ${{ steps.scan.outputs.sarif }}
  53. govulncheck:
  54. runs-on: ubuntu-latest
  55. permissions:
  56. security-events: write
  57. contents: read
  58. steps:
  59. - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
  60. with:
  61. persist-credentials: false
  62. - uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
  63. with:
  64. go-version: 1.26.0-rc.1 # change to "stable" once Go 1.26 is released
  65. - name: Install govulncheck
  66. run: go install golang.org/x/vuln/cmd/govulncheck@latest
  67. - name: Run govulncheck
  68. run: |
  69. govulncheck -C . -format sarif ./... > results.sarif
  70. - uses: github/codeql-action/upload-sarif@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2
  71. with:
  72. sarif_file: results.sarif
  73. dependency-review:
  74. runs-on: ubuntu-latest
  75. if: github.event_name == 'pull_request'
  76. permissions:
  77. contents: read
  78. steps:
  79. - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
  80. with:
  81. persist-credentials: false
  82. - uses: actions/dependency-review-action@3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 # v4.8.2
  83. with:
  84. fail-on-severity: critical
  85. allow-licenses: BSD-2-Clause, BSD-3-Clause, MIT, Apache-2.0, MPL-2.0, ISC, LicenseRef-scancode-google-patent-license-golang