Skip to content

πŸ“š docs: Add core project documentation and specifications #30

πŸ“š docs: Add core project documentation and specifications

πŸ“š docs: Add core project documentation and specifications #30

Workflow file for this run

name: Security
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
schedule:
# Run weekly on Monday at 00:00 UTC
- cron: '0 0 * * 1'
jobs:
gosec:
name: Security Scan (gosec)
runs-on: ubuntu-latest
permissions:
# Required for uploading SARIF results to GitHub Security tab
security-events: write
# Required for actions/checkout
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive # Include guillotine-mini submodule
- name: Run Gosec Security Scanner
uses: securego/gosec@master
with:
# Generate SARIF output for GitHub Security tab
# -no-fail ensures the job doesn't fail on findings (reported via SARIF instead)
# -fmt sarif outputs in SARIF format
# -out results.sarif writes to file
# ./... scans all packages recursively
args: '-no-fail -fmt sarif -out results.sarif ./...'
- name: Upload SARIF file
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
# Always upload SARIF results, even if gosec found issues
if: always()
govulncheck:
name: Vulnerability Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.24'
cache: true
- name: Install govulncheck
run: go install golang.org/x/vuln/cmd/govulncheck@latest
- name: Run govulncheck
run: govulncheck ./...
- name: Comment on PR (if vulnerabilities found)
if: failure() && github.event_name == 'pull_request'
uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: '⚠️ **Vulnerabilities detected** by govulncheck. Please review the workflow logs for details.'
})
dependency-review:
name: Dependency Review
runs-on: ubuntu-latest
# Only run on pull requests
if: github.event_name == 'pull_request'
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Dependency Review
uses: actions/dependency-review-action@v4
with:
# Fail the build if high or critical vulnerabilities are found
fail-on-severity: high
# Also check for invalid licenses
deny-licenses: GPL-3.0, AGPL-3.0