ci: lean Actions per CI-CD-STANDARD §11 — drop redundant CodeQL push:main (§11e)#97
Merged
Merged
Conversation
The pull_request run into main already gates every diff, and the weekly schedule run analyzes refs/heads/main directly, refreshing the canonical default-branch alert state. The per-merge push:main analysis therefore spent two matrix jobs (python + actions) per merge for at most a week of Security-tab bookkeeping latency — pure minutes under the account-wide Actions billing block, with no gate weakened. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JEt7d9aeBFmPToT46Sciqw
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
CI minutes are a failure mode, not just a cost: the account-wide Actions billing block means a quota-exhausted repo stops gating merges entirely. This sweep applies CI-CD-STANDARD §11 (lean Actions). ledger is already almost fully conformant — 8/8 workflows have concurrency groups, ubuntu-only runners, toolchain caching on CI (and none in release), a scheduled-only advisory mutation workflow, and push triggers scoped to main. The single genuine gap was CodeQL's per-merge
push: mainrun.Per-workflow changes
codeql.ymlpush: maintrigger per §11e;pull_requestinto main + weekly schedule remain. Header comment rewritten to explain that the weekly run analyzesrefs/heads/mainand keeps the canonical alert state current.ci.ymlpush:[main]+ PR, cancel-in-progress, uv/pip/npm caching).mutation.ymlrelease.ymlcancel-in-progress: false, caching explicitly disabled (§8b/§8c).scorecard.ymlpush: mainretained becausepublish_results: trueonly publishes from default-branch runs.secret-scan-scheduled.yml,semgrep.yml,standards.ymlSkipped (with reasons)
paths-ignoreonci.ymlci.ymlmixes heavy jobs with security-scanner jobs (pip-audit, gitleaks, zizmor, Trivy) in one workflow, andpaths-ignoreis trigger-level — adding it would skip the scanners, which is forbidden (scanners scan everything). All 11 of its job names are required status checks, so a docs-skip would also need same-named twin jobs across the board. Splitting scanners into their own workflow is a non-mechanical restructure left for a deliberate follow-up.Flag
The dropped
push: mainCodeQL run was deliberately documented as keeping the default-branch alert backlog current per merge. The weekly schedule run covers the same bookkeeping with up to a week of Security-tab latency; the merge gate itself (PR-triggeredCodeQL analyze (python)/(actions)required checks) is untouched. If per-merge alert closure matters more than the ~2 matrix-job runs per merge, reject this PR.Verification (all local — GitHub Actions is billing-blocked account-wide, so CI will not run here)
actionlintoncodeql.yml: clean (no pre-existing findings either).python3 -c 'yaml.safe_load(...)'oncodeql.yml: parses.--repomode) before and after: 31/31 both;actions_sha_pinned(84/84),workflow_permissions(8/8),no_silenced_security_gate,security_scanners_armedall PASS before and after.gh api repos/ChelseaKR/ledger/rules/branches/main: the CodeQL required contexts are PR-driven and unaffected; no job renames..github/workflows/codeql.yml.🤖 Generated with Claude Code
https://claude.ai/code/session_01JEt7d9aeBFmPToT46Sciqw