Commit 2c05bd72c8

2c05bd72c8c2c885833b8390964cc8ad4baede3c

parent: cf697c7c1a

Verified · cmc

cmc <hello@cleberg.net> · 2026-09-04 14:26 UTC

Users: require-codeowners is the opt-in for owner gating

Layout: unified · split

Users.org +8 −4
@@ -346,10 +346,14 @@ Semantics worth knowing:
346346Repo admins can gate merges (=repo settings ...=): =require-approvals
347347<n>= (fresh, non-author approvals; each reviewer's latest review is
348348their stance, and a fresh request-changes blocks), =require-resolved=
349(no open review threads), =require-checks= (all statuses green). With
350approvals required, a =CODEOWNERS= file on the target branch (root or
351=.gitbay/=) additionally demands an approval from an owner of every
352owned changed file — gitignore-style patterns, last match wins.
349(no open review threads), =require-checks= (all statuses green), and
350=require-codeowners= (an approval from an owner of every owned changed
351file). Owners come from a =CODEOWNERS= file on the target branch, root
352or =.gitbay/=, gitignore-style patterns, last match wins. The toggle is
353the opt-in, so a repository can carry the file as documentation of who
354to ask without it gating merges; with it on and no file on the target
355branch, the merge is refused and says so. It does not wait on
356=require-approvals=.
353357
354358A merge request whose target is another open merge request's source
355359branch is stacked on it: =mr create= says so, =mr show= carries