Repository navigation
ci: add the Scorecard workflow and deny claude.yml default permissions - #52
Conversation
Copies Alcuin's scorecard.yml so the Scorecard API publishes a result, and gives claude.yml a top-level permissions: {} like the other 8 workflows; its job keeps its own grants.
|
Up to standards ✅🟢 Issues
|
There was a problem hiding this comment.
Pull Request Overview
The Scorecard job is missing actions: read from its explicit permissions. Because job-level permissions replace workflow-level permissions, Scorecard may be unable to inspect workflow metadata and could produce incomplete or failing checks.
The recommended workflow trigger, publishing, upload, and Claude permission scenarios remain unverified by automated tests.
Test suggestions
- Validate Scorecard workflow triggers, action configuration, SARIF generation, and code-scanning upload
- Verify the Claude workflow has empty top-level permissions while its job retains only the required grants
- Verify workflow action references use full commit-SHA pins
Prompt proposal for missing tests
Consider implementing these tests if applicable:
1. Validate Scorecard workflow triggers, action configuration, SARIF generation, and code-scanning upload
2. Verify the Claude workflow has empty top-level permissions while its job retains only the required grants
3. Verify workflow action references use full commit-SHA pins
TIP Improve review quality by adding custom instructions
TIP How was this review? Give us feedback
| timeout-minutes: 15 | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: read |
There was a problem hiding this comment.
🟡 MEDIUM RISK
Add actions: read to the Scorecard job permissions so it can inspect workflow metadata.
TIP React 👍 if this review is right, or reply with what's wrong and how it could be better to help improve the reviewer.



Summary
Adds
scorecard.yml, copied from Alcuin, so the OpenSSF Scorecard API publishes a result for this repository (it currently returns 404). Itsupload-sarifpin uses the codeql-action commitcodeql.ymlalready uses.claude.ymlgains a top-levelpermissions: {}, matching the other 9 workflows; its job keeps its own grants.Evidence
python -m unittest tests.test_ci_installs: 7 passed (full-SHA pins, Dependabot coverage).scorecard.ymlno findings;claude.ymlno longer reportsexcessive-permissions, other findings unchanged from main.Merge danger
Door: two-way. Blast radius: CI
Scorecard runs weekly, on dispatch and on branch protection changes; its job alone holds
security-events: writeandid-token: write.Unverified