1+ name : Security scan
2+
3+ on :
4+ push :
5+ branches :
6+ - main
7+ pull_request :
8+ schedule :
9+ - cron : ' 0 3 * * 1'
10+ workflow_dispatch : # Allow manual trigger
11+
12+ permissions :
13+ contents : read
14+ # required for codeql analysis
15+ security-events : write
16+
17+ jobs :
18+ govulncheck :
19+ name : govulncheck
20+ runs-on : ubuntu-latest
21+ strategy :
22+ fail-fast : false
23+ steps :
24+ - uses : actions/checkout@v6
25+ - uses : actions/setup-go@v6
26+
27+ - name : Install govulncheck
28+ run : go install golang.org/x/vuln/cmd/govulncheck@latest
29+
30+ - name : govulncheck
31+ run : govulncheck ./...
32+
33+ bearer :
34+ name : bearer
35+ runs-on : ubuntu-latest
36+ strategy :
37+ fail-fast : false
38+ steps :
39+ - uses : actions/checkout@v6
40+ - name : Bearer
41+ uses : bearer/bearer-action@v2
42+ with :
43+ skip-path : ' docs/'
44+
45+ codeql :
46+ name : codeql
47+ runs-on : ubuntu-latest
48+ strategy :
49+ fail-fast : false
50+ steps :
51+ - uses : actions/checkout@v6
52+ - uses : actions/setup-go@v6
53+
54+ - name : Initialize CodeQL
55+ uses : github/codeql-action/init@v4
56+ with :
57+ languages : go
58+
59+ - name : Autobuild
60+ uses : github/codeql-action/autobuild@v4
61+ - name : Perform CodeQL Analysis
62+ uses : github/codeql-action/analyze@v4
63+
64+ trivy-codeql :
65+ name : trivy-codeql
66+ runs-on : ubuntu-latest
67+ strategy :
68+ fail-fast : false
69+ steps :
70+ - uses : actions/checkout@v6
71+ - uses : actions/setup-go@v6
72+
73+ - name : Run Trivy vulnerability scanner (source code)
74+ uses : aquasecurity/trivy-action@0.35.0
75+ with :
76+ scan-type : " fs"
77+ scan-ref : " ."
78+ scanners : " vuln,secret,misconfig"
79+ format : " sarif"
80+ output : " trivy-results.sarif"
81+ severity : " CRITICAL,HIGH,MEDIUM"
82+ ignore-unfixed : true
83+
84+ - name : Upload Trivy results to GitHub Security tab
85+ uses : github/codeql-action/upload-sarif@v4
86+ if : always()
87+ with :
88+ sarif_file : " trivy-results.sarif"
89+
90+ trivy-logs :
91+ name : trivy-logs
92+ runs-on : ubuntu-latest
93+ strategy :
94+ fail-fast : false
95+ steps :
96+ - uses : actions/checkout@v6
97+ - uses : actions/setup-go@v6
98+
99+ - name : Run Trivy scanner (table output for logs)
100+ uses : aquasecurity/trivy-action@0.35.0
101+ if : always()
102+ with :
103+ scan-type : " fs"
104+ scan-ref : " ."
105+ scanners : " vuln,secret,misconfig"
106+ format : " table"
107+ severity : " CRITICAL,HIGH,MEDIUM"
108+ ignore-unfixed : true
109+ exit-code : " 1"
110+
111+ - name : Run Trivy scanner (license)
112+ uses : aquasecurity/trivy-action@0.35.0
113+ if : always()
114+ with :
115+ scan-type : fs
116+ scan-ref : .
117+ scanners : license
118+ severity : UNKNOWN,HIGH,CRITICAL
119+ format : table
0 commit comments