Skip to content

ci: canary direct, pinned cicd-squabbler chains gate - #988

Merged
hyperpolymath merged 4 commits into
mainfrom
ci/squabbler-canary-20261031
Oct 31, 2026
Merged

hyperpolymath merged 4 commits into
mainfrom
ci/squabbler-canary-20261031

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner

Canary results and revised implementation

Initial cross-owner call failed with GitHub Actions startup_failure and zero jobs. This is a real integration defect, not a success. The revised canary invokes the independently maintained squabbler's pinned same-owner composite action directly, avoiding the cross-owner reusable/workflow policy boundary.

The action is pinned to hyperpolymath/cicd-squabbler@1ab1507a424c9edfe6cb53dea4e33a2f3cc558e3. The action's installer verifies SHA256 and provenance of the released binary; the GitHub token is read-only (contents + attestations). No Administration token and no --apply or writes.

The hard chain job runs on PR, push, weekly drift sweep and manual dispatch. squabble chains .=<repo> --follow 1 fails on exit 4 (cycle/dead upstream) and on any nonzero tool error. Its stdout and exit code go to the GitHub step summary. No green is claimed for a failed or missing check.

The workflow's actions.lock entry was updated to reflect the new SHA-pinned action and checkout. The canonical gh actions-lock --verify and the normal CI suite must pass before merge.

Acceptance criteria

  1. Squabbler jobs start (no startup_failure).
  2. Pinned binary installs and validates its attestation.
  3. Dependency graph completes successfully or fails closed on a genuine problem.
  4. Actions lock and policy gates accept the workflow; no required context is activated until this check has been observed running.
  5. Follow-up PR will add optional, explicitly NOT RUN / NOT EVALUATED specialist fight reporting once the hard canary is established. Autonomous repairs remain quarantined.

Squabbler stays a standalone CI tool; Hypatia is only a consumer. The initial failed cross-owner attempt is retained in the PR history as diagnostic evidence.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-31T11:09:33.196169Z 2e74e4d PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Caution

Review failed

The pull request is closed.

Summary

Summary by CodeRabbit

  • Chores
    • Added an automated workflow that runs for pull requests, updates to the main branch, on a weekly schedule, or when started manually.
    • Runs for the same reference are grouped, and newer runs can cancel earlier ones. The workflow uses read-only repository access and passes available pull request details to its reusable process.
    • No changes to the application experience.

Adds the CICD Squabbler workflow. It runs on pull requests, pushes to main, a weekly schedule, and manual dispatch, then calls a pinned reusable workflow with configured permissions and inputs.

Changes: CICD Squabbler workflow

Layer / File(s) Summary
Workflow triggers and reusable-workflow call
.github/workflows/cicd-squabbler.yml
Adds workflow triggers, concurrency controls, read permissions, and a call to a pinned reusable workflow. The call passes the pull request number when available and supplies HYPATIA_SCAN_PAT as ADMINISTRATION_READ_TOKEN.

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Feature

Possibly related PRs

Merge Risk: Minimal · up to 2e74e

No merge-blocking defect was established in the canary workflow.

- [ ] Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Share

@hyperpolymath hyperpolymath changed the title ci: canary the independent cicd-squabbler gate ci: canary direct, pinned cicd-squabbler chains gate Oct 31, 2026
@sonarqubecloud

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2e74e4d998

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/actions.lock Outdated
- 'dtolnay/rust-toolchain@v1'
- 'taiki-e/install-action@v2.88.0'
'.github/workflows/cicd-squabbler.yml':
- 'metadatastician/standards@1725bebd3773ea25627479f813283abf1c497a85'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Regenerate the complete lockfile dependency closure

This workflow reference has no corresponding top-level entry under dependencies:. Consequently, Hypatia.Rules.ActionsLock.parse/1 returns {:error, {:workflow_dependencies_missing, ...}}; the elixir-compile CI job explicitly runs the test that parses this repository's authoritative lockfile, so every PR containing this change will fail that gate. Regenerate the lockfile so this standards revision and all of its transitive uses entries are recorded.

Useful? React with 👍 / 👎.

@hyperpolymath
hyperpolymath merged commit 9d20e7f into main Oct 31, 2026
78 of 83 checks passed
@hyperpolymath
hyperpolymath deleted the ci/squabbler-canary-20261031 branch October 31, 2026 11:09
hyperpolymath added a commit that referenced this pull request Oct 31, 2026
…ight (#989)

## Incident and root causes

PR #988 was merged with CICD Squabbler showing `startup_failure` (zero
jobs) under both the cross-owner reusable and the same-owner composite
action. This is not a green check.

Meanwhile, Governance's Allowlist Preflight consistently failed with
five `metadatastician/standards/.github/workflows/*` gaps because it
fetched its policy at pinned standards revision `333b06a...`. That
revision **does not** contain the reusable workflow pattern; standards
revision `1725bebd3773ea25627479f813283abf1c497a85` **does**. This is an
evidenced pinned-policy mismatch, not a justification to weaken the
check.

## Corrections

1. Squabbler now has **zero external `uses:` references**. Checkout and
pinned release installation run as shell steps. The binary is
cryptographically verified against SHA256
`6cbeb4577d83ccf2dea3405a3afb0d34b7fee422af73f2113d413ea7edba026c` and
attested signer/source `b854d17abc0dce296719a349ebe856ff945cf03e`. The
pre-change user-visible CI already proved checkout, verified
installation, and `chains` succeeded: 37 probed repositories, 290 edges,
17 nonblocking findings. No writes/auto-fix.
2. The Governance reusable is pinned to standards
`1725bebd3773ea25627479f813283abf1c497a85`, whose source allowlist
contains `metadatastician/standards/.github/workflows/*@*`, covering the
five previously failing canon reusables.
3. `.github/workflows/actions.lock` is updated consistently: squabbler
`[]` and the new Governance commit.

## Review and gating

- [x] Squabbler starts real jobs, not startup_failure.
- [x] Pinned install and SLSA attestation pass.
- [x] Squabbler chain check passes with 0 blocking findings.
- [ ] Re-run new Governance revision; the five gaps should disappear or
be explicitly explained.
- [ ] Verify lock and all other existing required CI jobs before merge.
- [ ] Determine actual branch rules with an Administration-read
connection before promoting this check to required; GitHub's current
integration returns 403 on branch protection reads.

**Draft by design**: remain unmergeable until combined validation
passes. Never infer legitimacy from GitHub allowing a merge. Autonomous
repair and fleet quarantine remain unchanged.
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