Skip to content

fix(codeowners): make the code-owner requirement on this repo real - #69

Merged
LukasWodka merged 1 commit into
developfrom
fix/codeowners-workflow-trust-root
Jul 26, 2026
Merged

fix(codeowners): make the code-owner requirement on this repo real#69
LukasWodka merged 1 commit into
developfrom
fix/codeowners-workflow-trust-root

Conversation

@LukasWodka

@LukasWodkaLukasWodka commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Why

tracebloc/.github is the org's enforcement root. 96 caller workflows across 14 repos pin
tracebloc/.github/.github/workflows/*.yml@main, and every one passes secrets: inherit — so a
single merge here takes effect everywhere on the next workflow run and reaches every secret the
calling repos hold: PROJECTS_KANBAN_TOKEN, DOCKERHUB_TOKEN, PYPI_API_TOKEN, HF_TOKEN,
GH_PACKAGES_TOKEN, TEST_USER_PASSWORD, the Azure publish profiles.

It is also the least protected repo in the org:

visibilitypublic, forkable
required status checks on mainnone
require_code_owner_reviewstrue — but no CODEOWNERS file existed, so it resolved to nothing
enforce_adminsfalse
merges to main in the last 90 days with zero approving reviews16 of 25

So the gate that guards every other gate could be changed by any two of the seven org members.

What this does

Adds a CODEOWNERS file naming @LukasWodka for the workflows, the scripts they invoke, and the
repository by default. The require_code_owner_reviews flag already set on main starts resolving
to an actual person.

What it deliberately does not do

It does not close the self-merge path. As sole code owner, @LukasWodka cannot approve his own
PRs, so his changes still depend on enforce_admins: false. That is a conscious trade: the control
added here is over the other six members' changes to the enforcement layer. Naming a second owner
would make it a genuine two-person rule at the cost of a second gatekeeper — worth deciding
separately.

Still open on this repo

  • No required status check.ci(actionlint): lint this repo's own workflows + clear the 29 pre-existing findings #66 (actionlint) would provide the first one; it should become
    required on main once merged.
  • secrets: inherit on all 96 callers should be narrowed to the single secret each workflow
    actually needs. That is a cross-repo change, not this PR.
  • Callers pin @main, a mutable ref. Pinning to a SHA or release tag would remove the
    instant-propagation property entirely.

Context: RFC-BACKEND-0008 (tracebloc/backend#1262) D18/D19.


Note

Low Risk
Policy-only addition with no runtime or workflow logic changes; it strengthens merge governance on an already security-sensitive repo.

Overview
Adds a new .github/CODEOWNERS so require_code_owner_reviews on main actually requires review from @LukasWodka for the default tree, /.github/workflows/, and /scripts/.

That tightens who can merge changes to the org’s shared reusable workflows and their scripts; the file documents why this repo matters and that sole-owner review does not block admin self-merge.

Reviewed by Cursor Bugbot for commit f7cd9fb. Bugbot is set up for automated code reviews on this repo. Configure here.

`main` has had `require_code_owner_reviews: true` since branch protection was
applied, but this repository has never contained a CODEOWNERS file — so the
requirement resolved to nothing and any two of the seven org members could
change the gates themselves with one approval and no CI.
That matters more here than anywhere else. 96 caller workflows across 14 repos
pin `tracebloc/.github/.github/workflows/*.yml@main`, and all of them pass
`secrets: inherit`, so a single merge to this repo takes effect org-wide on the
next workflow run and reaches every secret the calling repos hold.
Adds @LukasWodka as owner of the workflows, the scripts they call, and the
repository by default.
This does not change the self-merge path: as sole owner he cannot approve his
own PRs and still relies on `enforce_admins: false`. The control added here is
over the other six members' changes to the enforcement layer.
@LukasWodka

Copy link
Copy Markdown
ContributorAuthor

👋 Heads-up — Code review queue is at 42 / 30

Above the WIP limit. The team convention is to review existing PRs before opening new work.

Open PRs currently in Code review (oldest first):

Pull from review before opening new work. (This is a nudge from the kanban WIP check, not a block.)

@LukasWodka

Copy link
Copy Markdown
ContributorAuthor

bugbot run

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit f7cd9fb. Configure here.

@LukasWodka
LukasWodka merged commit f669636 into developJul 26, 2026
4 checks passed
LukasWodka added a commit that referenced this pull request Jul 26, 2026
Picks up #66 (actionlint gate + the 29 shellcheck cleanups), #67 (closure
router), #69 (CODEOWNERS), and #71 (fr-gate fail-closed). Without these the
code-quality run here was linting the pre-#66 workflow copies and failing on
findings already fixed on develop.
@LukasWodka
LukasWodka deleted the fix/codeowners-workflow-trust-root branch August 1, 2026 21:45
Sign up for freeto 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

@LukasWodka