fix(ci): generate actions.lock — repair repo-wide startup_failure - #47
Merged
Conversation
Every workflow in this repo dies at startup_failure with zero jobs, including ci.yml, codeql.yml and boj-build.yml which have NO dependency on hyperpolymath/standards. That rules out the phantom reusable pin as the cause for those, and points at GitHub's per-repo workflow-lockfile enforcement: an enforced repo with no .github/workflows/actions.lock has every run rejected before any job starts. Same repair as .git-private-farm#128, which took that repo from 96/100 runs dead to 9 workflows running. Coverage completed to 11/11: gh actions-lock generates no entry for workflows whose only 'uses:' is a reusable workflow, so governance, mirror and secret-scanner were hand-added as '<path>: []'. SPDX restored to line 1 in all 11 workflows (the tool restamps its banner above it and the workflow-security linter greps head -1 only). NOT changed here, deliberately: this repo also pins the standards reusables at 5b1d00229e5e8c0c0fbfedc7e80f37ea50f49236, which DOES NOT EXIST in hyperpolymath/standards. Left in place so this change tests one variable — if governance/mirror/secret-scanner still fail while ci and codeql recover, both causes are confirmed independently. Known tool limitation, not introduced here: dtolnay/rust-toolchain is pinned to a commit reachable from no tag or branch, so the lockfile cannot record it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
🔍 Hypatia Security ScanFindings: 57 issues detected
View findings[
{
"reason": "Issue in scorecard.yml",
"type": "missing_workflow",
"file": "scorecard.yml",
"action": "create",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Action denoland/setup-deno@v2.0.5 needs attention",
"type": "unpinned_action",
"file": "ci.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action denoland/setup-deno@v2.0.5 needs attention",
"type": "unpinned_action",
"file": "ci.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action jetli/wasm-pack-action@v0.4.0 needs attention",
"type": "unpinned_action",
"file": "ci.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "codeql.yml lists `language: javascript-typescript` but the repo has no source files in any CodeQL-scannable language. The analyze job will exit 'no source files' on every run. Switch the matrix to `actions` (which scans workflow files — every repo has those).",
"type": "codeql_language_matrix_mismatch",
"file": "codeql.yml",
"action": "switch_codeql_matrix_to_actions",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Issue in boj-build.yml",
"type": "missing_timeout_minutes",
"file": "boj-build.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in casket-pages.yml",
"type": "missing_timeout_minutes",
"file": "casket-pages.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in casket-pages.yml",
"type": "missing_timeout_minutes",
"file": "casket-pages.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in ci.yml",
"type": "missing_timeout_minutes",
"file": "ci.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in ci.yml",
"type": "missing_timeout_minutes",
"file": "ci.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
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.
Controlled test of the lockfile hypothesis, mirroring the fix that restored
.git-private-farm(#128 there).Symptom: every workflow dies at
startup_failurewith zero jobs — includingci.yml,codeql.ymlandboj-build.yml, which have no dependency onhyperpolymath/standards. That rules out the phantom reusable pin as the cause for those three.Change: generate
.github/workflows/actions.lock, complete coverage to 11/11 (the tool emits no entry for reusable-callers, sogovernance/mirror/secret-scannerwere hand-added as[]), and restore SPDX to line 1 in all 11 workflows.Deliberately NOT changed: this repo pins the standards reusables at
5b1d0022…, which does not exist inhyperpolymath/standards(gh api→ 422). Left in place so this tests one variable.Prediction, recorded before merge:
ci,codeql,boj-build(no standards dep) → should RUNgovernance,mirror,secret-scanner(phantom pin) → should STILL failIf that is what happens, both causes are confirmed independently and the estate-wide sweep needs both steps, not either alone.
Known tool limitation, not introduced here:
dtolnay/rust-toolchainis pinned to a commit reachable from no tag or branch, so the lockfile cannot record it.🤖 Generated with Claude Code