Skip to content

ci(scorecard): add job-level permissions for reusable workflow#167

Merged
hyperpolymath merged 1 commit into
mainfrom
chore/scorecard-job-level-perms-282
May 30, 2026
Merged

ci(scorecard): add job-level permissions for reusable workflow#167
hyperpolymath merged 1 commit into
mainfrom
chore/scorecard-job-level-perms-282

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Adds the job-level permissions: { security-events: write, id-token: write } block to the analysis job in .github/workflows/scorecard.yml, fixing the silent startup_failure on every Scorecard run.

Why

scorecard-reusable.yml's docstring states:

Caller MUST grant security-events: write and id-token: write on the calling job. The reusable re-asserts these on its own analysis job, but called-workflow permissions are CAPPED by the caller's permissions block.

Without this, ossf/scorecard-action cannot upload SARIF, the workflow fails at startup, and there are no logs.

Sweep

Part of estate-wide sweep tracked at hyperpolymath/standards#282. Pattern shipped in julia-professional-registry#19 (2026-05-27) and absolute-zero#68 (2026-05-30).

Test plan

  • Next Scorecard run completes successfully (cron '23 4 * * 1')
  • SARIF appears in Security tab
  • No startup_failure runs after merge

Refs hyperpolymath/standards#282

🤖 Generated with Claude Code

The `scorecard-reusable.yml` reusable requires the calling `analysis` job
to declare `security-events: write` and `id-token: write` — called-workflow
permissions are CAPPED by the caller's block (the reusable docstring
states this explicitly).

Without this, every Scorecard run silently fails with `startup_failure`
because ossf/scorecard-action cannot upload SARIF.

Estate-wide sweep tracked at hyperpolymath/standards#282; same pattern as
julia-professional-registry#19 (2026-05-27) and absolute-zero#68
(2026-05-30).

Refs hyperpolymath/standards#282

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 212 issues detected

Severity Count
🔴 Critical 17
🟠 High 123
🟡 Medium 72

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Stale AI session file -- delete",
    "type": "stale",
    "file": "GEMINI.md",
    "action": "delete",
    "rule_module": "root_hygiene",
    "severity": "medium"
  },
  {
    "reason": "Action    if: always()\n        uses: actions/upload-artifact@ea165 needs attention",
    "type": "unpinned_action",
    "file": "e2e.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action perpolymath/standards/.github/workflows/governance-reusable.yml@main\n needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in abi-drift.yml",
    "type": "unknown",
    "file": "abi-drift.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in codeql.yml",
    "type": "unknown",
    "file": "codeql.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in container-publish.yml",
    "type": "unknown",
    "file": "container-publish.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in dogfood-gate.yml",
    "type": "unknown",
    "file": "dogfood-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in dogfood-gate.yml",
    "type": "unknown",
    "file": "dogfood-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in dogfood-gate.yml",
    "type": "unknown",
    "file": "dogfood-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in dogfood-gate.yml",
    "type": "unknown",
    "file": "dogfood-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath merged commit 17b55cd into main May 30, 2026
22 of 23 checks passed
@hyperpolymath
hyperpolymath deleted the chore/scorecard-job-level-perms-282 branch May 30, 2026 15:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant