fix(ci): repair unparseable scorecard.yml that startup-kills the run - #187
Conversation
`permissions: read-all` was followed by an indented `actions: read`, i.e. a
scalar value with a mapping key under it. That is not valid YAML:
yaml: line 12, column 10: mapping values are not allowed in this context
The file also carried a second, well-formed `permissions:` block immediately
below the broken pair, so the malformed two lines are pure debris from a
permissions sweep. Deleting them leaves the intended permissions intact.
Why this matters more than a red build: the run is created, emits
`jobs.total_count == 0` and NEVER produces a check run, so a *required*
context simply never reports. An unrepaired repo therefore looks GREENER
than a repaired one. Screen on job count, never on conclusion colour.
Verified: `yq` parses; `jobs` is a non-empty map; `jobs.analysis` is a pure
reusable-workflow caller (`uses` present, no `steps`, no `runs-on`);
actionlint clean. The pin 8f2ee508 resolves and is left untouched.
This is the same repair already carried by the other ten repos in this
family; bofig was the one member with no open repair PR.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0178nN4Nm3neFRy5K9StZKnB
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (1)
💤 Files with no reviewable changes (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📜 Recent review details⏰ Context from checks skipped due to timeout. (2)
|
| Layer / File(s) | Summary |
|---|---|
Retain explicit workflow permissions .github/workflows/scorecard.yml |
The workflow removes the broad permission entries and uses the explicit permission map for its default scopes. |
Priority: ⬇️ Low
Estimated code review effort: 1 (Trivial) | ~3 minutes
Change: Bug fix
Merge Risk: ⚪ Minimal · up to 58519
The YAML-only repair retains the explicit permissions map with no identified merge-blocking risk.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
| Check name | Status | Explanation |
|---|---|---|
| Title check | ✅ Passed | The title clearly and concisely identifies the CI workflow repair and the invalid YAML that prevented the run from creating checks. |
| Description check | ✅ Passed | The description directly explains the malformed YAML, the resulting workflow failure, the two-line repair, and the verification performed. |
| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0… |
| Linked Issues check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |
| Out of Scope Changes check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
- Create stacked PR
- Commit on current branch
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
A rabbit checks the workflow gate
Two broad permissions leave their place
Read and write scopes stay defined
A tidy YAML trail remains behind
The scorecard hops on, safely aligned
Comment @coderabbitai help to get the list of available commands.
The defect
.github/workflows/scorecard.ymlwas not valid YAML:A scalar value with a mapping key indented beneath it:
The file also carried a second, well-formed
permissions:block immediately belowthe broken pair, so those two lines are pure debris from a permissions sweep. Deleting
them leaves the intended permissions exactly as they were.
Why this is worse than a red build
The run is still created, but it emits
jobs.total_count == 0and never produces acheck run. A required context therefore never reports — so an unrepaired repo
looks greener than a repaired one. Screening on conclusion colour hides this class
entirely; the only sound screen is the job count.
Verification
yqparses the filejobsis a non-empty mapjobs.analysisis a pure reusable-workflow caller —usespresent, nosteps, noruns-onactionlintclean8f2ee508resolves (standards, 2026-09-08) and is left untouched — this is a YAML-only fix%G?=GContext
Ten sibling repos already carry this same repair on open PRs.
bofigwas the one memberof the family with no open repair PR, which is why it is still broken on
main.🤖 Generated with Claude Code
https://claude.ai/code/session_0178nN4Nm3neFRy5K9StZKnB