Skip to content

fix(certifier): stop accepting Codecov config as coverage signal - #873

Merged
hyperpolymath merged 2 commits into
mainfrom
chore/remove-dead-app-ci-refs-3
Sep 20, 2026
Merged

hyperpolymath merged 2 commits into
mainfrom
chore/remove-dead-app-ci-refs-3

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Two follow-ups to the merged allowlist PR (#870), both about why Codecov kept coming back rather than the references themselves:

  1. rsr-certifier accepted codecov.yml / .codecov.yml (and any CI file containing the string codecov) as proof of coverage configuration, and its advice text named Codecov first. That made the certifier reward the removed app, so any repo that dropped it could be nudged back. It now accepts the local generators only (tarpaulin / llvm-cov / coverage.py, plus coveralls config which some Elixir repos generate locally).
  2. The registry doc recorded three integration ids as 'unresolved (owner decision O5)'. 1561 and 85455 are now positively resolved (no matching app, no bypass), leaving only 946600 = Codex MCP.

No toolchain in this environment, so the Rust edit is verified by exact-string replacement plus bracket-balance checks, not by cargo check.

@coderabbitai

coderabbitai Bot commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 58 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: d6d35e21-1b45-4ce6-ae60-5b3c9b77526d

📥 Commits

Reviewing files that changed from the base of the PR and between 115a281 and e10e58b.

📒 Files selected for processing (2)
  • config/README.adoc
  • rhodium-standard-repositories/satellites/rsr-certifier/engine/src/compliance/gold.rs

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

Comment @coderabbitai help to get the list of available commands.

@hyperpolymath

Copy link
Copy Markdown
Owner Author

Corrected my own earlier wording on the O5 row: the sweep shows 1561/85455 are not "resolved with no bypass" — they, plus always bypass for RepositoryRole 2 and the retired code_coverage/required_deployments/copilot_code_review rules, all survive on one disabled ruleset (anvomidaviser/Optimus-Branch). That ruleset is the thing to delete. Also recorded why a "Tailscale app install" is not an available action.

@sonarqubecloud

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath merged commit 2aa4526 into main Sep 20, 2026
12 of 20 checks passed
@hyperpolymath
hyperpolymath deleted the chore/remove-dead-app-ci-refs-3 branch September 20, 2026 22:32
hyperpolymath added a commit that referenced this pull request Sep 20, 2026
Corrects a wrong number I introduced in #873, which auto-merged before I
caught it.

The sentence being fixed claimed 946600 was live on `67 repo rulesets
(17 hyperpolymath, 50 metadatastician)`. That came from a 96-repo
sample, and the sample script also read *this table itself* as if it
were evidence of live bypass grants.

Re-ran the scan over **all** 453 repos (1,026 rulesets, both estates):
1561, 85455 and 946600 appear exactly once each, all on one *disabled*
ruleset (`anvomidaviser` id 14968878), which also still has `always`
bypass for the maintain role and the three retired rules — so the action
there is deletion, not repair.

Useful by-product for the CodeRabbit work: on active rulesets the only
integration bypass actors are oikosbot (6) and claude (2); dependabot,
github-actions, gitguardian, sonarqubecloud and coderabbitai hold none,
so CodeRabbit's bypass actor has to be added when it is installed or its
auto-fix pushes are blocked by the estate ruleset.
hyperpolymath added a commit that referenced this pull request Sep 20, 2026
… the O5 row (#878)

Follows the Codecov sweep (#870, #873, #874) into the enforcement layer,
where the same apps left a deeper residue.

**A.** `config/rulesets/Optimus-Extras.json` still defined
`code_coverage`, `code_quality`, `required_deployments` and
`copilot_code_review` — the four constraints §7.3 retired and the four
`scripts/plan-ruleset-constraint-repair.rb` exists to strip. As the only
branch-side template in the estate it is why the drift reappears on
every manual convergence. Now a single `code_scanning` rule (kept:
GitHub-native, no app); `name`/`enforcement`/`bypass_actors` untouched,
JSON re-parsed in the script.

**B.** Corrects a sentence I merged in #874 — "No active ruleset grants
bypass to any uninstalled app". It came from a sweep that trusted `GET
/repos/{o}/{r}/rulesets`, whose list payload **omits `rules` and
`bypass_actors`**; 1,026 rulesets came back with empty arrays and looked
clean. Re-fetched per ruleset (1,036, all 453 repos): gitar-bot 827041
has `always` bypass on the `metadatastician` org ruleset
`EstateBranching` (all 43 repos), 946600 on 56 active rulesets,
1561/85455 on 9 each, maintain-role `always` on 53. codecov, codacy,
renovate, advanced-security: zero. Two more ids nobody can name (262318,
1658531) also hold `always` on that org ruleset.

**C.** Documents that no committed script globs `config/rulesets/`, and
that this token's ruleset *writes* are 404 while `POST`/`DELETE` are
accepted — so the fix is PUT bodies for an owner session, not a workflow
applier that could drop protection in a delete/create gap. Generated
plan (96 repo rulesets + the org one, dry-run validated, live re-read
guard) is in the audit workspace:
`estate-audit/ruleset-repair/apply-ruleset-repair.sh`, same semantics as
`plan-ruleset-constraint-repair.rb`.

No CI impact: template JSON is consumed by owner-run tooling, and the
only repo whose workflow reads `config/rulesets/` is the tag canon,
which is untouched.
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