Der vorherige Fix (token-setup-trivy: "") schlug fehl: der act_runner
wertet einen leeren String-Input offenbar als "nicht angegeben", statt
ihn als expliziten leeren Wert an actions/checkout durchzureichen -
dessen eigener required-Input "token" fehlt dadurch komplett und der
Schritt bricht ab ("Input required and not supplied: token").
Damit lässt sich der git-basierte Installationsweg von setup-trivy
(Checkout von github.com/aquasecurity/trivy) nicht zuverlässig unter
Gitea nutzen. Trivy wird jetzt wie schon TruffleHog per curl direkt
von den GitHub-Releases installiert, trivy-action überspringt die
eigene Installation via skip-setup-trivy und nutzt nur noch die
Scan-Funktionalität.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FKMjR9pBxshZYZdhKyT5Ky
71 lines
2.6 KiB
YAML
71 lines
2.6 KiB
YAML
name: Security Scans
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- testing
|
|
- dev
|
|
pull_request:
|
|
schedule:
|
|
- cron: "0 5 * * 1"
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
security-scan:
|
|
name: Trivy & OSV-Scanner
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@v7
|
|
|
|
# setup-trivy (intern von trivy-action genutzt) installiert Trivy bei Cache-Miss über
|
|
# einen Git-Checkout von github.com/aquasecurity/trivy mit github.token als Auth.
|
|
# Unter Gitea ist github.token der lokale Gitea-Runner-Token, für github.com ungültig
|
|
# -> 401. Ein leerer token-setup-trivy-Input sollte eigentlich einen anonymen Checkout
|
|
# auslösen, wird vom act_runner aber als "nicht angegeben" gewertet, wodurch
|
|
# actions/checkout am eigenen required-Input "token" scheitert. Daher Trivy hier
|
|
# manuell installieren (wie im TruffleHog-Workflow) und den setup-trivy-Schritt der
|
|
# Action per skip-setup-trivy komplett umgehen.
|
|
- name: Install Trivy
|
|
run: |
|
|
curl -fsSL -o trivy.tar.gz \
|
|
"https://github.com/aquasecurity/trivy/releases/download/v0.70.0/trivy_0.70.0_Linux-64bit.tar.gz"
|
|
tar -xzf trivy.tar.gz trivy
|
|
chmod +x trivy
|
|
sudo mv trivy /usr/local/bin/trivy
|
|
rm trivy.tar.gz
|
|
|
|
- name: Run Trivy Scanner
|
|
uses: aquasecurity/trivy-action@v0.36.0
|
|
with:
|
|
skip-setup-trivy: "true"
|
|
scan-type: fs
|
|
scan-ref: .
|
|
scanners: vuln,secret,misconfig
|
|
severity: CRITICAL,HIGH
|
|
format: json
|
|
output: trivy-results.json
|
|
exit-code: "0"
|
|
|
|
- name: Install OSV-Scanner
|
|
run: |
|
|
curl -fsSL -o /usr/local/bin/osv-scanner \
|
|
"https://github.com/google/osv-scanner/releases/download/v2.5.1/osv-scanner_linux_amd64"
|
|
chmod +x /usr/local/bin/osv-scanner
|
|
|
|
- name: Run OSV-Scanner
|
|
run: |
|
|
set +e
|
|
osv-scanner scan source --recursive --format json --output-file osv-results.json .
|
|
echo "OSV_EXIT=$?" >> "$GITHUB_ENV"
|
|
|
|
- name: Ergebnisse & Gitea-Issue erstellen/aktualisieren
|
|
env:
|
|
GITEA_URL: ${{ gitea.server_url || github.server_url }}
|
|
REPO: ${{ gitea.repository || github.repository }}
|
|
TOKEN: ${{ secrets.SECURITY_TOKEN }}
|
|
RUN_URL: ${{ gitea.server_url || github.server_url }}/${{ gitea.repository || github.repository }}/actions/runs/${{ gitea.run_id || github.run_id }}
|
|
run: |
|
|
python3 scripts/report-security-issue.py trivy-results.json osv-results.json
|