Skip to content

security(codeowners): replace the unowned @high-texas handle with @JG2547 - #184

Merged
patricktobias86 merged 2 commits into
mainfrom
security/codeowners-remove-unowned-handle
Aug 25, 2026
Merged

security(codeowners): replace the unowned @high-texas handle with @JG2547#184
patricktobias86 merged 2 commits into
mainfrom
security/codeowners-remove-unowned-handle

Conversation

@JG2547

@JG2547 JG2547 commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

Applies the operator-specified CODEOWNERS content. Fixes two defects.

Defect 1 — @high-texas is an unowned handle, and every entry naming it is inert

GitHub's own CODEOWNERS validation is the proof, not an inference:

GET /repos/1132-Fixer/windows/codeowners/errors?ref=main
  errors: 9   — every one: "Unknown owner on line N: make sure @high-texas
                 exists and has write access to the repository"

GET .../codeowners/errors?ref=security/codeowners-remove-unowned-handle
  errors: 0

Measured identity:

high-texas   id 124146493   created 2023-02-01   name: (none)   0 public repos   0 followers
JG2547       id 130007713   created 2023-04-05   name: HT       org member, admin

high-texas is an empty third-party account holding a handle that resembles the org's name. Across all 8 estate repos it has no collaborator access, no pending invitation, and no org membership in 1132-Fixer, Botify-Network, or THEVIPROOM. The read the API reports on public repos is ordinary public visibility.

Because GitHub silently ignores CODEOWNERS entries for users without write access, all 9 entries have been inert since they were written — @patricktobias86 has always been the sole effective owner. Nothing broke, which is why it went unnoticed.

The hazard is that the entry looks like a valid second owner, and acting on that appearance produces a write-access invitation to a stranger — carrying approval authority over /build/ and over /.github/CODEOWNERS itself, which is self-amending.

Bounded statement of that incident: invitation 330298548 was created with write permission and later successfully revoked. Current pending invitations are zero and high-texas has no current granted access. Acceptance during the short interval is not historically provable, because organization audit logs are unavailable on this plan — GET /orgs/1132-Fixer/audit-log returns 404, the org is plan=free, and the querying account is an org owner, so this is a plan gate rather than a permissions failure.

Defect 2 — there was no default rule, so most of the repo had no owner at all

The old file had 9 path patterns and no * rule, so any path outside them had no code owner. That is exactly why #182 had no requested reviewer while #179#181 had one. Adds:

* @JG2547 @patricktobias86

Effect on the four blocked PRs

#179#182 are all authored by JG2547, and GitHub never counts an author's own approval. @patricktobias86 remains the only effective approver on them, before and after this change. All four now explicitly request patricktobias86 (#182 previously requested nobody).

What this change does buy: when a bot or another contributor authors a PR, either owner can satisfy code-owner review; and every path in the repo now has an owner rather than only 9 of them.

Not changed

require_code_owner_review, required_approving_review_count: 1, require_last_push_approval, and require_extra_approval_for_unattributed_changes are untouched. No access was granted to @high-texas. This PR does not waive #182's failing Build & Test, nor resolve the #181/#182 product-choice conflict.

/.github/CODEOWNERS is itself a codeowned path, so this PR requires @patricktobias86's approval by design.

🤖 Generated with Claude Code

…2547

@high-texas (id 124146493) is NOT an account this organization controls. It is
an empty third-party account -- created 2023-02-01, no name, no bio, 0 public
repos, 0 followers -- that happens to hold a handle resembling the org's name.
It is not an org member, holds no collaborator access in any estate repo, and
never did: GitHub silently ignores CODEOWNERS entries for users without write
access, so all 9 entries have been inert since they were written.

The risk is that the entry LOOKS like a valid second owner. Acting on that
appearance produces a write-access invitation to a stranger -- which would have
carried approval authority over all 9 protected paths, including
/.github/CODEOWNERS itself and /build/. One such invitation was created and
revoked today before acceptance; no access was ever granted.

Replaces all 9 occurrences with @JG2547 (id 130007713), an org member with
admin access.

NOTE for reviewers: this does NOT change who can approve a PR that JG2547
authors -- GitHub never counts an author's own approval. On JG2547-authored
PRs, @patricktobias86 remains the only effective codeowner.
Applies the operator-specified CODEOWNERS content verbatim.

Two defects fixed:
1. @high-texas (id 124146493) is an empty third-party account, not an org
   member, with no collaborator access anywhere in the estate. GitHub silently
   ignores CODEOWNERS entries for users without write access, so all 9 entries
   naming it have been inert since written. Replaced with @JG2547 (admin).
2. There was no default rule, so any path outside the 9 listed patterns had NO
   code owner at all -- which is why PR #182 has no requested reviewer. Adds
   '* @JG2547 @patricktobias86'.

Does not weaken require_code_owner_review, required_approving_review_count,
require_last_push_approval, or require_extra_approval_for_unattributed_changes.
No access was granted to @high-texas.
@patricktobias86
patricktobias86 merged commit 725d027 into main Aug 25, 2026
4 checks passed
@patricktobias86
patricktobias86 deleted the security/codeowners-remove-unowned-handle branch August 25, 2026 22:24
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.

2 participants