89 lines
2.3 KiB
YAML
89 lines
2.3 KiB
YAML
name: API Security Scan
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- "backend/**"
|
|
pull_request:
|
|
branches: [main]
|
|
paths:
|
|
- "backend/**"
|
|
schedule:
|
|
- cron: "0 6 * * 1"
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
security-events: write
|
|
|
|
jobs:
|
|
govulncheck:
|
|
name: Go Vulnerability Check (CVE)
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: "1.24.4"
|
|
cache-dependency-path: backend/gestion/go.sum
|
|
|
|
- name: Install govulncheck
|
|
run: go install golang.org/x/vuln/cmd/govulncheck@latest
|
|
|
|
- name: Run govulncheck
|
|
working-directory: backend/gestion
|
|
run: govulncheck ./...
|
|
|
|
trivy:
|
|
name: Trivy - Dependency & Code Scan
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Trivy scan (filesystem)
|
|
uses: aquasecurity/trivy-action@0.28.0
|
|
with:
|
|
scan-type: fs
|
|
scan-ref: backend/gestion
|
|
format: sarif
|
|
output: trivy-results.sarif
|
|
severity: CRITICAL,HIGH,MEDIUM
|
|
exit-code: "1"
|
|
|
|
- name: Upload Trivy SARIF
|
|
if: always()
|
|
uses: github/codeql-action/upload-sarif@v4
|
|
with:
|
|
sarif_file: trivy-results.sarif
|
|
|
|
gosec:
|
|
name: Gosec - Security Hotspots
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: "1.24.4"
|
|
cache-dependency-path: backend/gestion/go.sum
|
|
|
|
- name: Install gosec
|
|
run: go install github.com/securego/gosec/v2/cmd/gosec@latest
|
|
|
|
- name: Run gosec
|
|
working-directory: backend/gestion
|
|
run: gosec -fmt sarif -out gosec-results.sarif ./...
|
|
|
|
- name: Upload gosec SARIF
|
|
if: always()
|
|
uses: github/codeql-action/upload-sarif@v4
|
|
with:
|
|
sarif_file: backend/gestion/gosec-results.sarif
|