Files
projet_gestion_commande/.github/workflows/api-security.yml
T
2026-03-11 20:44:53 +01:00

89 lines
2.4 KiB
YAML

name: API Security Scan
on:
push:
branches: [main]
paths:
- "backend/**"
pull_request:
branches: [main]
paths:
- "backend/**"
schedule:
- cron: "0 6 * * 1" # Lundi 6h00 UTC
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