Skip to content

ci: inherited-controls assertion test for portfolio repos #49

Description

@millsmillsymills

Context

Plan-2 portfolio spec Section 3 enumerates the Plan-1 inherited controls every portfolio repo must carry: CodeQL, Scorecard, zizmor, gitleaks, actionlint, harden-runner egress block + allowlist, SHA-pinned actions + persist-credentials false, dependency-review, SBOM + SLSA-3, signed-commits ruleset.

Today this is asserted in prose. A CI check should verify each portfolio repo's workflow set actually contains all of the above before the repo is marked pin-grade.

Acceptance

  • Scheduled workflow (or per-repo CI gate) that walks each portfolio repo's .github/workflows/ and asserts:
    • Each control's expected action is present and pinned to a full SHA.
    • harden-runner runs in every job.
    • actions/checkout everywhere uses persist-credentials: false.
  • Output is a per-repo report posted as an issue or workflow summary.
  • Negative test: deliberately remove a control's workflow in a test repo and confirm the check fails.

Blocked on

  • At least one MVP portfolio repo existing.

Source

Follow-up from review of PR #37/#39 (Plan-2 portfolio spec).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions