-
Notifications
You must be signed in to change notification settings - Fork 1
fix: converge governance gates and cognitive security contracts #22298
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from 14 commits
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
954b057
Implement admissibility enforcement across CI and deployment
15b394a
Implement admissibility enforcement across CI and deployment
16c3d3b
Add admissibility enforcement pipeline across CI and deployment
b8d4708
docs: add summit operating appendices
3bed835
Add Summit operating appendices and certification standard
0cf2cf9
docs: add summit customer and scorecard packs
c08d654
docs: add summit enablement and management packs
b3c6e49
docs: add summit internal operating docs
0b2f65e
docs: add summit operating control manuals
dfc9c03
docs: add summit operating enforcement layer
7e96dec
fix: converge governance gates and cognitive security contracts
e788974
Add admissibility presync checks and evidence bundle
6c9e95e
fix: repair required checks manifest after convergence rebase
b19e8eb
fix: unblock action integrity with pinned workflows
80682c3
fix: stabilize repoos guard checks
761996a
fix: tighten workflow token permissions
ca7fcf7
Resolve workflow conflicts and pin GitHub Actions
b465e32
fix: repair active workflow and ci syntax conflicts
08513a9
fix: skip aws-backed ci memory on pr runs
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,47 +1,20 @@ | ||
| <<<<<<< HEAD | ||
| # Required Status Checks Configuration | ||
| # ===================================== | ||
| # DEPRECATED: This file is maintained for historical reference only. | ||
| # | ||
| # CANONICAL SOURCE: docs/ci/REQUIRED_CHECKS_POLICY.yml (v2.2.0) | ||
| # | ||
| # The authoritative definition of required checks is in: | ||
| # docs/ci/REQUIRED_CHECKS_POLICY.yml | ||
| # | ||
| # That file defines: | ||
| # - always_required: checks that must pass on every commit | ||
| # - conditional_required: checks that run based on changed files | ||
| # - informational: non-blocking checks for observability | ||
| # | ||
| # This file remains for legacy tooling compatibility but should NOT | ||
| # be used as a source of truth for branch protection or merge queue | ||
| # configuration. | ||
| # | ||
| # Last updated: 2026-03-25 | ||
| # Status: ARCHIVED - refer to REQUIRED_CHECKS_POLICY.yml | ||
| ======= | ||
| # Canonical list of required status checks for protected branches | ||
| # Order is stable and intentional (deterministic diffs) | ||
| # NOTE: Canonical policy source is governance/ga/required-checks.yaml. | ||
| # Keep this file in sync for legacy verification consumers. | ||
| >>>>>>> pr-21871 | ||
|
|
||
| version: 2 | ||
| protected_branches: | ||
| - main | ||
|
|
||
| # DEPRECATED: See docs/ci/REQUIRED_CHECKS_POLICY.yml for current checks | ||
| # This file remains a maintained legacy consumer surface. | ||
| # The canonical required-check source is governance/ga/required-checks.yaml. | ||
| required_checks: | ||
| - pr-fast | ||
| - merge-queue | ||
| - ci-guard / attestation-bundle-verifier | ||
| - merge-surge / merge-queue | ||
| - merge-surge / pr-fast | ||
| - security-gates / gate | ||
|
|
||
| notes: | ||
| owner: summit-ga | ||
| <<<<<<< HEAD | ||
| canonical_source: docs/ci/REQUIRED_CHECKS_POLICY.yml | ||
| status: archived | ||
| migration_date: 2026-03-25 | ||
| reason: Consolidated to single source of truth to eliminate conflicting definitions | ||
| ======= | ||
| policy: governance/ga/required-checks.yaml | ||
| >>>>>>> pr-21871 |
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,96 @@ | ||
| name: Admissibility Gate | ||
|
|
||
| on: | ||
| pull_request: | ||
| workflow_dispatch: | ||
|
|
||
| permissions: | ||
| contents: read | ||
| id-token: write | ||
| attestations: write | ||
|
|
||
| jobs: | ||
| evidence-admissibility: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v4 | ||
|
|
||
| - name: Setup Node | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: 20 | ||
|
|
||
| - name: Enable Corepack | ||
| run: corepack enable | ||
|
|
||
| - name: Install dependencies | ||
| run: pnpm install --frozen-lockfile | ||
|
|
||
| - name: Install Syft | ||
| uses: anchore/sbom-action/download-syft@v0.17.0 | ||
|
|
||
| - name: Install Cosign | ||
| uses: sigstore/cosign-installer@v3.8.1 | ||
|
|
||
| - name: Build deterministic artifact payload | ||
| run: | | ||
| mkdir -p dist | ||
| sha256sum package.json pnpm-lock.yaml | awk '{print $1}' | sort > dist/admissible-artifact.txt | ||
|
|
||
| - name: Generate SBOM (CycloneDX) | ||
| run: syft . -o cyclonedx-json=evidence/sbom.cdx.json | ||
|
|
||
| - name: Assert SBOM completeness | ||
| run: | | ||
| test -f evidence/sbom.cdx.json | ||
| jq -e '.components and (.components | length > 0)' evidence/sbom.cdx.json | ||
|
|
||
| - name: Generate provenance attestation (SLSA) | ||
| uses: actions/attest-build-provenance@v3 | ||
| with: | ||
| subject-path: dist/admissible-artifact.txt | ||
|
|
||
| - name: Materialize deterministic provenance snapshot | ||
| run: | | ||
| DIGEST="$(sha256sum dist/admissible-artifact.txt | awk '{print $1}')" | ||
| jq -n \ | ||
| --arg digest "sha256:${DIGEST}" \ | ||
| --arg repo "${{ github.repository }}" \ | ||
| '{ | ||
| _type: "https://in-toto.io/Statement/v1", | ||
| predicateType: "https://slsa.dev/provenance/v1", | ||
| subject: [{name: "dist/admissible-artifact.txt", digest: {sha256: ($digest | sub("^sha256:"; ""))}}], | ||
| builder: {id: "https://github.com/actions/runner"}, | ||
| invocation: {configSource: {uri: $repo}} | ||
| }' > evidence/provenance.json | ||
|
|
||
| - name: Sign and verify artifact signature | ||
| run: | | ||
| cosign generate-key-pair | ||
| cosign sign-blob --yes --key cosign.key --output-signature evidence/artifact.sig dist/admissible-artifact.txt | ||
| cosign verify-blob --key cosign.pub --signature evidence/artifact.sig dist/admissible-artifact.txt | ||
|
|
||
| - name: Build evidence report/metrics/stamp | ||
| env: | ||
| ARTIFACT_PATH: dist/admissible-artifact.txt | ||
| SBOM_PATH: evidence/sbom.cdx.json | ||
| PROVENANCE_PATH: evidence/provenance.json | ||
| SIGNATURE_VERIFIED: "true" | ||
| run: node scripts/ci/build_admissibility_evidence.mjs | ||
|
|
||
| - name: Evaluate admissibility gate | ||
| run: pnpm verify:admissibility --input evidence/report.json | ||
|
|
||
| - name: Upload evidence artifacts | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: admissibility-evidence-${{ github.run_id }} | ||
| path: | | ||
| evidence/report.json | ||
| evidence/metrics.json | ||
| evidence/stamp.json | ||
| evidence/sbom.cdx.json | ||
| evidence/provenance.json | ||
| evidence/artifact.sig | ||
| cosign.pub |
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: BrianCLong/summit
Length of output: 181
🏁 Script executed:
Repository: BrianCLong/summit
Length of output: 101
🏁 Script executed:
Repository: BrianCLong/summit
Length of output: 4347
Parse
on.pull_request{,_target}.pathsspecifically instead of grepping for anypaths:key.The
current_has_pathsandbase_has_pathsbooleans go true for any indentedpaths:key anywhere in the workflow, includingpush.paths. A workflow withpull_request:trigger but lacking path restrictions will incorrectly pass this guard if that workflow also haspush.pathsor paths under any other trigger.Example: A workflow with
on: { pull_request:, push: { paths: [".github/workflows/**"] } }would incorrectly satisfy the policy, allowing a PR-facing trigger without actual PR path scoping.This issue applies to both line ranges: 60-67 (current workflow check) and 80-87 (base workflow check).
🤖 Prompt for AI Agents