Feat/security ci restructure#264
Conversation
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.OpenSSF Scorecard
Scanned Files
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fd00a59095
ℹ️ 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".
0d29804 to
ee808ae
Compare
Address Devin Review findings on PR #264: - apply/verify-governance.sh: reusable-workflow jobs in ci-fast.yml are reported by GitHub as compound "<caller> / <callee>" check names, not the caller name alone. Required-check lists used the plain caller names, so running apply-governance.sh would have deadlocked dev/main (strict checks that GitHub never reports). Use the compound names for all reusable-backed jobs and keep plain names only for direct jobs. - Remove required checks 'Contracts Release Check (Dry-Run + Execute Smoke)' and 'Contracts Production Mode Smoke' — no workflow emits these contexts, so requiring them would also block merges indefinitely. - verify-governance.sh: accept either team-based (maintainers) or user-based push restrictions, matching build_restrictions() in apply-governance.sh; and skip the dismiss_stale_reviews assertion when required approvals is 0 (reviews are disabled for the solo maintainer). - contracts-release-gate.yml: fix stale push path filter referencing the old filename contracts-release-gate-container.yml. - RYLACreditLedger.setAdapter: drop the redundant '&& adapter_ != address(0)' term (behavior-equivalent to the prior single-guard form) and correct the misleading comment; ADAPTER can never be reset to zero once set. Co-Authored-By: Iko <iap@disroot.org>
Address Devin Review findings on PR #264: - apply/verify-governance.sh: reusable-workflow jobs in ci-fast.yml are reported by GitHub as compound "<caller> / <callee>" check names, not the caller name alone. Required-check lists used the plain caller names, so running apply-governance.sh would have deadlocked dev/main (strict checks that GitHub never reports). Use the compound names for all reusable-backed jobs and keep plain names only for direct jobs. - Remove required checks 'Contracts Release Check (Dry-Run + Execute Smoke)' and 'Contracts Production Mode Smoke' — no workflow emits these contexts, so requiring them would also block merges indefinitely. - verify-governance.sh: accept either team-based (maintainers) or user-based push restrictions, matching build_restrictions() in apply-governance.sh; and skip the dismiss_stale_reviews assertion when required approvals is 0 (reviews are disabled for the solo maintainer). - contracts-release-gate.yml: fix stale push path filter referencing the old filename contracts-release-gate-container.yml. - RYLACreditLedger.setAdapter: drop the redundant '&& adapter_ != address(0)' term (behavior-equivalent to the prior single-guard form) and correct the misleading comment; ADAPTER can never be reset to zero once set. Co-Authored-By: Iko <iap@disroot.org>
cd1f1ff to
ba6ac91
Compare
|
Re-review requested after addressing the prior findings in
|
67f4192 to
8b7d552
Compare
|
Addressed the docs drift in |
|
Both files look correct in
And both dropped checks ( |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8b7d552a50
ℹ️ 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".
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
- Replace Gitleaks with trufflehog (v3.95.5, pinned SHA) - Fix circom build: add mkdir -p build before compile - Update gas snapshots (forge snapshot) - Fix semgrep/slither: use uvx/uv run, fix config format - Fix circomspect: cargo caching, pnpm install, correct lib path, SARIF upload - Format fixes: forge fmt, shfmt - Replace Gitleaks license with trufflehog - Fix Slither config: string format, add @interop-lib remap, increase timeout - Fix reusable workflows: semgrep/slither installation steps All 27 original commits squashed with author Iko <iap@disroot.org>
a1a504c to
3326bb1
Compare
Greptile Summary
This PR restructures CI/CD into a two-tier model (
ci-fast.ymlfor every PR,ci-full.ymlfor nightly/manual runs) backed by reusable workflow components, replaces Gitleaks-via-Docker with trufflehog, consolidates governance workflows, updates the ZK circuit with a domain-separated 5-input Poseidon for output commitments, and regenerates the Groth16 verifier.ci-fast.ymlnow correctly declareson: workflow_call:, fixing the reusable-workflow contract thatci-full.ymldepends on; actions are uniformly pinned to immutable SHAs.\"Gitleaks Scan\"remains in the governance required-check lists while the new trufflehog job is named\"Secret Scan (trufflehog)\", so runningapply-governance.shwill require a check that no CI job ever satisfies.dstChainId; verification key constants and contract name (Groth16Verifier) updated to match the new circuit.Confidence Score: 2/5
Not safe to merge: running apply-governance.sh will require a check named 'Gitleaks Scan' that no workflow produces, permanently deadlocking all future PRs on dev and main.
The governance required-check lists still name 'Gitleaks Scan' while the new secrets job is 'Secret Scan (trufflehog)'. The release orchestration smoke tests were dropped with no replacement.
scripts/github/apply-governance.sh and scripts/github/verify-governance.sh need the 'Gitleaks Scan' entry corrected.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD PR([Pull Request / Push]) --> CF[ci-fast.yml] CF --> S[Secret Scan trufflehog] CF --> TL[Typecheck + Lint] CF --> CC[Contracts Core] CF --> CS[Contracts Security] CF --> CIR[Circuits Core] CF --> FE[Frontend Checks] RG[contracts-release-gate.yml] --> RG_JOB[check: Release Gate Container] GOV([Governance requires: Gitleaks Scan]) -.->|no workflow produces this|DEADLOCK([PR deadlock]) SCHED([Schedule / Dispatch]) --> FULL[ci-full.yml] FULL --> CF FULL --> INV[Contracts Core With Invariants]Comments Outside Diff (1)
scripts/github/verify-governance.sh, line 118-123 (link)apply-governance.shcheck_branchhard-codes a check thatrestrictions.teams[].slug == "maintainers". Butapply-governance.sh's newbuild_restrictions()function can be invoked withMAIN_PUSH_ALLOW_USERS=iap(documented in the header comments), which produces a user-based restriction withteams: []. When the governance is applied with user-based restrictions, everyverify-governance.shrun will reportFAIL: push restrictions do not include maintainers teamon both branches. Either the verify script should also accept user-based restrictions, or the apply script should disallow that mode for protected branches.Prompt To Fix All With AI
Reviews (25): Last reviewed commit: "ci: fix all CI failures for PR #264" | Re-trigger Greptile