Files
MirrorPackage/.gitea/workflows/security-scan.yaml
T
DragonSlayer_14andClaude Sonnet 5 50a093afcf
TruffleHog Secret Scan / TruffleHog (push) Successful in 10s
Security Scans / Trivy & OSV-Scanner (push) Successful in 22s
Fix: Trivy manuell installieren statt setup-trivy (Gitea act_runner Bug)
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
2026-09-10 00:15:27 +02:00

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