fix(scorecard): remove self-scorecard job that fails publish verification#180
Conversation
…tion The duplicate `self-scorecard` job in `.github/workflows/scorecard.yml` was rejected by the scorecard.dev publishing webapp with HTTP 400: workflow verification failed: scorecard job must only have steps with `uses`, see https://github.com/ossf/scorecard-action#workflow-restrictions The job contained two `run:` steps (SCORECARD_TOKEN presence check and a step-summary writer), which violates the supply-chain restriction that `publish_results: true` jobs may only contain `uses:` steps. The reusable `scorecard` job (calling `python-scorecard.yml`) already publishes successfully, so this job was redundant. Removing it eliminates the failing required check on `main` without losing dashboard coverage. Closes the OpenSSF Scorecard failure on https://github.com/ByronWilliamsCPA/.github/actions/runs/26477814929 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
💤 Files with no reviewable changes (1)
📝 WalkthroughWalkthroughThe PR refactors the Scorecard workflow to delegate OpenSSF Scorecard execution from an in-repo job to a centralized reusable org-level workflow. The inline self-scorecard job and its constituent steps are removed and replaced with a scorecard job that calls the python-scorecard.yml reusable workflow with appropriately scoped permissions. ChangesScorecard Workflow Delegation
Possibly related PRs
Poem
🎯 2 (Simple) | ⏱️ ~8 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
There was a problem hiding this comment.
Pull request overview
This PR updates the repository’s OpenSSF Scorecard workflow to eliminate a failing duplicate job, leaving a single job that delegates analysis to the org-level reusable workflow.
Changes:
- Removes the
self-scorecardjob from.github/workflows/scorecard.ymlto avoid Scorecard publish verification failures caused byrun:steps. - Keeps the existing reusable-workflow based
scorecardjob as the only Scorecard job in this workflow.
| scorecard: | ||
| name: Scorecard Analysis | ||
| permissions: | ||
| security-events: write | ||
| contents: read | ||
| actions: read | ||
| uses: ByronWilliamsCPA/.github/.github/workflows/python-scorecard.yml@6f71aecae2c91214ca0a0a2206a36cf912aa31ac # main |



Summary
self-scorecardjob from.github/workflows/scorecard.yml.scorecardjob (callingpython-scorecard.yml) continues to publish to the scorecard.dev dashboard.Why this failed on
mainThe
self-scorecardjob invokesossf/scorecard-actionwithpublish_results: true. The publishing webapp verifies the workflow file before accepting the SARIF, and one of its mandatory restrictions is that the job may only containuses:steps. This job had tworun:steps (aSCORECARD_TOKENpresence check and a step-summary writer), so the publish call returned:```
http response 400, status: 400 Bad Request,
{"code":400,"message":"workflow verification failed: scorecard job must only have steps with `uses`, see https://github.com/ossf/scorecard-action#workflow-restrictions for details."}
```
Failing run: https://github.com/ByronWilliamsCPA/.github/actions/runs/26477814929
Why deletion is the right fix
The sibling
scorecardjob already calls the org-level reusablepython-scorecard.ymlworkflow, which publishes successfully. Theself-scorecardjob was a defensive duplicate that could never have published with thoserun:steps in place. Removing it eliminates the failing required check without losing dashboard coverage.Test plan
OpenSSF Scorecardshows only theScorecard Analysisjob and it passesmainno longer fails theOpenSSF Scorecardrequired checkGenerated with Claude Code
Summary by CodeRabbit