Skip to content
This repository was archived by the owner on Oct 11, 2026. It is now read-only.

ci: enforce branch protection on main and reconcile CI docs - #316

Merged
Roddygithub merged 1 commit into
mainfrom
ci/branch-protection-docs
Oct 2, 2026
Merged

Roddygithub merged 1 commit into
mainfrom
ci/branch-protection-docs

Conversation

@Roddygithub

Copy link
Copy Markdown
Owner

Met en place la protection de branche que CONTRIBUTING.md documente depuis le flip public, et réconcilie les docs qui la décrivaient comme déjà active alors qu'elle ne l'était pas.

Pourquoi

Sur main, required_status_checks était null : aucun check requis, aucune review requise. Résultat, le 01/10 : 4 PR dependabot mergeées en moins de 30 s dont une dont la CI était rouge — dependabot-auto-merge appelle gh pr merge --auto --squash, et sans exigence de branche « auto » = immédiat.

Cause racine : la checklist du retournement public (CONTRIBUTING.md § Public-flip cheatsheet) se termine par une étape manuelle :

# Step 8 — apply the branch-protection ruleset via the GitHub web UI

Elle n'a jamais été exécutée, pendant que CHANGELOG, CONTRIBUTING et ci.yml écrivaient tous « the main ruleset » au présent.

Ce qui est appliqué

Via l'API de branch protection classique (gh ruleset est Enterprise-only) :

Réglage Valeur
Required status checks (9) Lint Python, Test Python, Lint Web, Playwright (chromium), ARQ worker integration, DCO check, Build API image, Build Web image, Trivy filesystem scan
Pull request obligatoire oui, 0 approval requis
Linear history oui
Force push / suppression de branche bloqué
enforce_admins oui
Up-to-date requis non

Playwright (visual-regression) reste hors liste : continue-on-error: true + baselines pré-v0.16.x, comme documenté.

Validation

  • PR ci: smoke-test required status checks on main #315 (commit vide) : BLOCKED à chaque poll pendant que les checks tournent → CLEAN à 10/10 → merge OK.
  • Push direct sur main refusé : GH006: Changes must be made through a pull request + 9 of 9 required status checks are expected.

Corrections de doc

  • ci.yml : « CONTRIBUTING lists 6 required-status-checks » → 9 ; le commentaire du job dco-check disait encore « NOT currently added … informational-only » alors qu'il est maintenant requis.
  • dependabot-auto-merge.yml : les renvois plans/136 et plans/137 pointaient vers arcdps healing stats sidecar et buff uptime Pydantic model — aucun rapport avec la CI, et les fichiers ne sont même pas dans l'arbre.
  • CONTRIBUTING.md : la section passe de « Recommended » à « Status: applied », avec l'endpoint exact pour la réappliquer.
  • CHANGELOG.md : entrée [Unreleased] qui documente le trou et la validation.

- Apply classic branch protection: 9 required status checks, PR required,
  linear history, no force push/deletion, enforce_admins
- ci.yml: CONTRIBUTING lists 9 required checks, not 6; dco-check comment
  claimed informational-only although it is now a required gate
- dependabot-auto-merge.yml: drop dangling plans/136 + plans/137 refs
  (those plans are an arcdps sidecar and a buff-uptime model)
- CONTRIBUTING.md: record that the ruleset is applied and via which API
- CHANGELOG.md: document the gap and the smoke-test validation

Signed-off-by: Roland Salardon <r.salardon@gmail.com>
@Roddygithub
Roddygithub merged commit 9934bbc into main Oct 2, 2026
11 checks passed
@Roddygithub
Roddygithub deleted the ci/branch-protection-docs branch October 2, 2026 00:12
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant