opt-out semantics for default-on scans
quality / python-lint (push) Skipped
quality / node-lint (push) Skipped
quality / php-lint (push) Skipped
quality / secret-scan (push) Successful in 5s
quality / sast (push) Failing after 4s
quality / vuln-scan (push) Successful in 11s
quality / actionlint (push) Successful in 3s
selftest / quality (push) Failing after 24s

This commit is contained in:
2026-08-25 12:38:29 +00:00
parent b0ad23f690
commit 9daa8b557b
+14 -12
View File
@@ -1,21 +1,23 @@
name: quality
# Reusable Quality-Gate. Blockierend/Report-only wird in der Shell entschieden
# (Giteas Parser kann ${{ }} nicht in continue-on-error/bool unmarshalen).
# Reusable Quality-Gate. Semantik: Scans laufen per DEFAULT (opt-out via skip_*),
# Sprach-Linter sind opt-in (python/node/php). Grund: Gitea wendet Input-Defaults
# reusable-seitig NICHT an -> unset ist falsy, daher !skip_* = an.
# blocking=true macht SAST/Vuln/Lint zum harten Gate (Secrets sind immer hart).
# KEINE Docker-Hub-Pulls -> Tools via GitHub-Release/pip.
on:
workflow_call:
inputs:
python: { type: boolean, default: false }
node: { type: boolean, default: false }
php: { type: boolean, default: false }
secret_scan: { type: boolean, default: true }
sast: { type: boolean, default: true }
vuln_scan: { type: boolean, default: true }
blocking: { type: boolean, default: false }
python: { type: boolean, default: false }
node: { type: boolean, default: false }
php: { type: boolean, default: false }
skip_secret_scan: { type: boolean, default: false }
skip_sast: { type: boolean, default: false }
skip_vuln: { type: boolean, default: false }
blocking: { type: boolean, default: false }
jobs:
secret-scan:
if: ${{ inputs.secret_scan }}
if: ${{ !inputs.skip_secret_scan }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -30,7 +32,7 @@ jobs:
/tmp/gitleaks detect --source . --redact --no-banner --exit-code 1
sast:
if: ${{ inputs.sast }}
if: ${{ !inputs.skip_sast }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -45,7 +47,7 @@ jobs:
[ "$rc" -ne 0 ] && echo "::warning::semgrep findings (report-only)"; true
vuln-scan:
if: ${{ inputs.vuln_scan }}
if: ${{ !inputs.skip_vuln }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4