Skip to content

Merge-queue-ready gates: ci-ok aggregate, security-gate review, label-proof CI - #87

Merged
ryuzdev merged 5 commits into
mainfrom
ci/merge-queue-gate
Oct 22, 2026
Merged

ryuzdev merged 5 commits into
mainfrom
ci/merge-queue-gate

Conversation

@ryuzdev

@ryuzdev ryuzdev commented Oct 22, 2026

Copy link
Copy Markdown
Member

Draft for owner review (slice A1 ci-gate, items 2, 3, 10, 13).

What

  • ci.yml runs on pull_request (opened/synchronize/reopened) plus merge_group; labeled/unlabeled no longer trigger it, so labels neither start CI jobs nor cancel the running gate.
  • merge_group always runs the release suite on both lanes with no paths-filter skip, on its own concurrency group (queue entries never cancel each other or a PR run).
  • New ci-ok aggregate job: fails on any failure/cancel, accepts skipped only where the paths-filter legitimately skips (docs-only PRs; the changes job itself on non-PR events).
  • New security-gate workflow: fails PRs touching .github/security-paths.yml sensitive: paths until a reviewer (never the author) adds security-reviewed; new commits strip it and fail again. Passes by itself on merge_group.
  • New .coderabbit.yaml: no draft reviews; lockfiles, generated runner-types, changelog.d excluded. Validated locally against https://coderabbit.ai/integrations/schema.v2.json with python jsonschema.
  • AGENTS.md Merging section + workflows bullet; CHANGELOG Changed entry.

Expected CI on this PR

  • ci-ok green (this PR touches no runtime-code filter paths, so e2e skips legitimately).
  • security-gate FAILS first: this PR touches .github/**, which is sensitive. Expected — please review and apply security-reviewed.
  • A non-e2e label add/remove on this PR starts no new ci run and cancels nothing (proven below with run ids).

Validation already run

  • actionlint v1.7.12 clean on all 7 workflows in .github/workflows/.
  • ci-ok aggregation logic exercised from the committed file (6/6 case matrix pass: PR/merge_group/dispatch x e2e success/skipped/failure).
  • .coderabbit.yaml valid against the official v2 schema.

For the parent (post-merge)

  • Suggested ruleset: require checks ci-ok + security-gate; squash merge method; merge queue with merge_group runs (always release, own concurrency key, no cancel).
  • merge_group path cannot run before the queue exists: on first queue entries every job runs (no paths skip), e2e is forced to release, and ci-ok requires e2e success on that event.

…-proof CI

- ci.yml runs on pull_request (opened/synchronize/reopened) plus
  merge_group; labels never start or cancel CI jobs.
- merge_group always runs the release suite on both lanes with no
  paths-filter skip, on its own concurrency group.
- ci-ok aggregate job (required check): fails on any failure/cancel,
  accepts skipped only where the paths-filter legitimately skips.
- New security-gate workflow (required check): fails PRs touching
  .github/security-paths.yml sensitive paths until a reviewer adds
  security-reviewed; new commits strip it and fail again.
- New .coderabbit.yaml: no draft reviews; lockfiles, generated
  runner-types and changelog.d excluded.
- AGENTS.md Merging section; CHANGELOG entry.
@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

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

Next included review available in 2 minutes.

Check out review usage here.

View limit details

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

Learn how review limits work.

Review configuration:

⚙️ Run configuration
📥 Commits

Reviewing files that changed from the base of the PR and between 506f3e9 and 155b758.

📒 Files selected for processing: 6
  • .coderabbit.yaml
  • .github/security-paths.yml
  • .github/workflows/ci.yml
  • .github/workflows/security-gate.yml
  • AGENTS.md
  • CHANGELOG.md
  • 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

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

@github-actions github-actions Bot added the security-sensitive Touches .github/security-paths.yml; needs security-reviewed to pass security-gate label Oct 22, 2026
@ryuzdev ryuzdev added documentation Improvements or additions to documentation and removed documentation Improvements or additions to documentation labels Oct 22, 2026
@ryuzdev
ryuzdev marked this pull request as ready for review October 22, 2026 10:24
Parent review of the ci-gate slice:
- security-gate read .github/security-paths.yml from the PR's own
  checkout, so a PR could drop its own files (and the list itself) from
  the list and pass. The list now comes from the base commit; a base
  without the list fails closed (every change counts as sensitive).
  persist-credentials off. The residual risk (a PR editing the gate
  workflow runs its own copy) is documented for the reviewer.
- ci-ok accepted a skipped e2e on any PR. It now accepts skipped only
  when the e2e job's own condition is false (no runtime code, no e2e
  label); otherwise the lanes must succeed.
- security-paths: add the limits admin gate, invites, the platform rate
  limiter and the hostile/hardening e2e proofs; fix a truncated comment.
@ryuzdev ryuzdev added the e2e Run the e2e lanes on this pull request (ci.yml) label Oct 22, 2026
@ryuzdev ryuzdev added the security-reviewed A reviewer (never the author) read this sensitive diff; new commits remove it label Oct 22, 2026
@ryuzdev
ryuzdev merged commit 7c0986e into main Oct 22, 2026
13 of 14 checks passed
@ryuzdev
ryuzdev deleted the ci/merge-queue-gate branch October 22, 2026 10:41
ryuzdev added a commit that referenced this pull request Oct 22, 2026
…htly flake hunt

Squashed from ci/e2e-speed (d02c10d), rebased across #87 (ci-ok and the
merge_group lane conditions kept) with the image job's unneeded
actions:write dropped. See PR #90 for the before/after and run ids.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

e2e Run the e2e lanes on this pull request (ci.yml) security-reviewed A reviewer (never the author) read this sensitive diff; new commits remove it security-sensitive Touches .github/security-paths.yml; needs security-reviewed to pass security-gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant