ci(codeql): Guardrail gegen Default-Setup Drift#63
Conversation
There was a problem hiding this comment.
Pull request overview
Implementiert einen CI-Guardrail gegen Drift durch aktiviertes GitHub CodeQL Default Setup: PR-Merges werden fail-closed blockiert, und ein täglicher Scheduled-Check erstellt bei Drift ein (idempotentes) Issue und markiert den Run als fehlgeschlagen.
Changes:
- Neuer Preflight-Check
tools/ci/check-codeql-default-setup.shinkl. Audit-Artefakten (raw/summary/json) und fail-closed Verhalten. - Neuer Scheduled Workflow
.github/workflows/codeql-default-setup-guardrail.yml(daily + workflow_dispatch) mit Drift-Detection und Issue-Erstellung. - Neue Guardrail-Helferskripte (
get_state.sh,ensure_issue.sh) sowie Security-Doku.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/ci/codeql-default-setup-guardrail/get_state.sh | Liest Default-Setup-State per GitHub API und exposed state/drift als GitHub Actions Outputs. |
| tools/ci/codeql-default-setup-guardrail/ensure_issue.sh | Erstellt bei Drift ein Issue (idempotent) und setzt optional Labels. |
| tools/ci/check-codeql-default-setup.sh | Preflight-Gate inkl. Artefakt-/Evidence-Output und fail-closed Merge-Block. |
| tools/ci/bin/run.sh | Bindet den neuen Preflight-Guardrail in die bestehende Preflight-Pipeline ein. |
| docs/security/010_CODEQL_DEFAULT_SETUP_GUARDRAIL.MD | Dokumentiert Motivation, Verifikation und Guardrails. |
| .github/workflows/codeql-default-setup-guardrail.yml | Scheduled Drift-Detection Workflow mit minimalen Permissions und fail-closed Run. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Preflight faellt aktuell erwartbar mit HTTP 403 am Endpoint /code-scanning/default-setup, solange das Secret fehlt. Bitte in Repo Settings -> Secrets and variables -> Actions ein Fine-Grained PAT als hinterlegen (Repository permissions: Administration=Read-only, Security events=Read-only). Danach erneut laufen lassen (Re-run failed jobs). |
|
Preflight faellt aktuell erwartbar mit HTTP 403 am Endpoint /code-scanning/default-setup, solange das Secret fehlt. Bitte in Repo Settings -> Secrets and variables -> Actions ein Fine-Grained PAT als Secret namens CODEQL_DEFAULT_SETUP_GUARDRAIL_TOKEN hinterlegen (Repository permissions: Administration=Read-only, Security events=Read-only). Danach im PR: Actions -> CI -> preflight "Re-run failed jobs". |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 7 changed files in this pull request and generated 16 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Ziel & Scope
Guardrail implementieren, der PR-Merges fail-closed blockiert, sobald GitHub CodeQL Default Setup aktiv ist (Drift), und zusaetzlich einen taeglichen Drift-Check ausfuehrt, der bei Drift ein Issue (idempotent) erstellt.
Non-Goals:
SECURITY.md.Umgesetzte Aufgaben (abhaken)
not-configuredsein.CODEQL_DEFAULT_SETUP_GUARDRAIL_TOKENwird in PR-CI + Scheduled Workflow genutzt.contents: read,issues: write).Nachbesserungen aus Review (iterativ)
Security- und Merge-Gates
security/code-scanning/toolsmuss0 offene Alertsliefern.Wichtig (Token):
GET /repos/{owner}/{repo}/code-scanning/default-setupist in GitHub Actions mitGITHUB_TOKENin diesem Repo aktuell nicht erreichbar (HTTP 403Resource not accessible by integration).CODEQL_DEFAULT_SETUP_GUARDRAIL_TOKENerforderlich (Repo-spezifisch, Read-only).Evidence (auditierbar)
CI_DEFER_ARTIFACT_LINK_RESOLUTION=1 GITHUB_REPOSITORY=tomtastisch/FileClassifier bash tools/ci/bin/run.sh preflightartifacts/ci/preflight/codeql-default-setup-guardrail/bash tools/ci/bin/run.sh buildartifacts/ci/build/bash tools/ci/bin/run.sh tests-bdd-coverageartifacts/ci/tests-bdd-coverage/codeql-default-setup-guardrail/summary.mdenthaelt die 403-Reason inkl. Hinweis aufCODEQL_DEFAULT_SETUP_GUARDRAIL_TOKEN.DoD (mindestens 2 pro Punkt)
artifacts/ci/preflight/codeql-default-setup-guardrail/summary.mdexistiert und Check istpass.tools/ci/bin/run.sh preflightexit code == 0..github/workflows/codeql-default-setup-guardrail.ymlexistiert und nutzt least-privilege permissions.docs/security/010_CODEQL_DEFAULT_SETUP_GUARDRAIL.MDerklaert Impact, Fix und Token-Anforderung.SECURITY.md.