ci+docs: changelog token to job-level (Scorecard Token-Permissions 0→~10) + OpenSSF Scorecard badge - #55
Merged
Navi Bot (project-navi-bot) merged 1 commit intoMay 25, 2026
Conversation
…adge - changelog.yml: move contents: write from the workflow top level to the release-notes job (the only job that needs it — creating the draft Release); top level is now contents: read. Fixes the OpenSSF Scorecard Token-Permissions check, which zeroes the whole (high-weight) check on ANY top-level write (0 -> ~10). - README: add the OpenSSF Scorecard badge (the API has published the project's results — live score 7.9 from scorecard.yml's post-merge run). Verified: zizmor --offline clean, actionlint clean, YAML (top-level contents: read + job-level contents: write).
Nelson Spence (Fieldnote-Echo)
requested a review
from Navi Bot (project-navi-bot)
as a code owner
May 25, 2026 18:31
Review Summary by QodoImprove Scorecard Token-Permissions and add badge
WalkthroughsDescription• Move contents: write from workflow top-level to job-level in changelog.yml - Fixes OpenSSF Scorecard Token-Permissions check (0 → ~10 points) - Only release-notes job needs write permission for creating draft Release • Add OpenSSF Scorecard badge to README - Links to live project score (7.9/10) from scorecard.dev Diagramflowchart LR
A["changelog.yml<br/>top-level: contents: write"] -->|Move to job-level| B["release-notes job<br/>contents: write"]
B -->|Fixes check| C["OpenSSF Scorecard<br/>Token-Permissions: ~10"]
D["README.md"] -->|Add badge| E["OpenSSF Scorecard<br/>Badge link"]
File Changes1. .github/workflows/changelog.yml
|
project-navi-bot
approved these changes
May 25, 2026
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.
Two OpenSSF Scorecard improvements (current aggregate 7.9/10):
Token-Permissions 0 → ~10 (biggest single lever)
changelog.ymldeclared a top-levelcontents: write, and Scorecard zeroes the entire (high-weight) Token-Permissions check on any top-level write. Movedcontents: writedown to the onerelease-notesjob that needs it (creating the draft Release) and set the workflow top level tocontents: read. No behaviour change — the job still has the write scope it requires.README: OpenSSF Scorecard badge
The OpenSSF API has published this project's results (live score 7.9, from
scorecard.yml's post-merge run), so added the official badge to the README badge row (using the currentapi.scorecard.dev/scorecard.devdomains).Verified locally
zizmor --offline .github/workflows/→ no findingsactionlint .github/workflows/changelog.yml→ cleancontents: read, job-levelcontents: writeFollow-up (separate, manual): the OpenSSF Best Practices badge will be added once the project is registered + passing at bestpractices.dev.