fix(codeowners): substitute the un-instantiated {{OWNER}} placeholder - #41
Conversation
CODEOWNERS carried the literal `@{{OWNER}}`. GitHub's own validator
(/repos/{owner}/{repo}/codeowners/errors) reports every such rule as
'Invalid owner', which means the file assigns NO code owners at all -- and any
ruleset with require_code_owner_review becomes unsatisfiable, since a review
from a non-existent owner can never arrive.
This is not a template artefact here: `just init` performs a repo-wide brace-token
substitution and simply never ran for this repo. Measured estate-wide 2026-07-29:
54 repos carried the placeholder, of which 2 are genuine templates where it is
CORRECT and are deliberately untouched.
Substituted with the repo's actual owner (hyperpolymath).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
|
Note Automatic reviews are paused because your trial's included automatic processing has been used for this period. Upgrade now, or comment "Gitar review" to run a review anytime. Code Review ✅ ApprovedSubstitutes the un-instantiated {{OWNER}} placeholder in the CODEOWNERS file with the correct team handle, fixing invalid rule validation on GitHub. No issues found.
OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
|
|
🔍 Hypatia Security ScanFindings: 17 issues detected
View findings[
{
"reason": "Issue in push-email-notify.yml",
"type": "missing_timeout_minutes",
"file": "push-email-notify.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Code scanning (Scorecard): TokenPermissionsID -- Token-Permissions -- 7 day(s) old",
"type": "CSA001",
"file": ".github/workflows/scorecard.yml",
"action": "update",
"rule_module": "code_scanning_alerts",
"severity": "high"
},
{
"reason": "Code scanning (Scorecard): BranchProtectionID -- Branch-Protection -- 33 day(s) old [STALE]",
"type": "CSA001",
"file": "no file associated with this alert",
"action": "escalate",
"rule_module": "code_scanning_alerts",
"severity": "high"
},
{
"reason": "Code scanning (Hypatia): hypatia/workflow_audit/missing_timeout_minutes -- Hypatia workflow_audit: missing_timeout_minutes -- 34 day(s) old [STALE]",
"type": "CSA001",
"file": "push-email-notify.yml",
"action": "update",
"rule_module": "code_scanning_alerts",
"severity": "medium"
},
{
"reason": "Code scanning (Scorecard): SASTID -- SAST -- 40 day(s) old [STALE]",
"type": "CSA001",
"file": "no file associated with this alert",
"action": "update",
"rule_module": "code_scanning_alerts",
"severity": "medium"
},
{
"reason": "Code scanning (Scorecard): FuzzingID -- Fuzzing -- 40 day(s) old [STALE]",
"type": "CSA001",
"file": "no file associated with this alert",
"action": "update",
"rule_module": "code_scanning_alerts",
"severity": "medium"
},
{
"reason": "Code scanning (Scorecard): MaintainedID -- Maintained -- 40 day(s) old [STALE]",
"type": "CSA001",
"file": "no file associated with this alert",
"action": "escalate",
"rule_module": "code_scanning_alerts",
"severity": "high"
},
{
"reason": "Code scanning (Scorecard): CodeReviewID -- Code-Review -- 40 day(s) old [STALE]",
"type": "CSA001",
"file": "no file associated with this alert",
"action": "escalate",
"rule_module": "code_scanning_alerts",
"severity": "high"
},
{
"reason": "Code scanning (Scorecard): TokenPermissionsID -- Token-Permissions -- 40 day(s) old [STALE]",
"type": "CSA001",
"file": ".github/workflows/hypatia-scan.yml",
"action": "escalate",
"rule_module": "code_scanning_alerts",
"severity": "high"
},
{
"reason": "10 total open code-scanning alert(s) -- security hygiene review",
"type": "CSA002",
"file": "hyperpolymath/lucidscript",
"action": "review",
"rule_module": "code_scanning_alerts",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |



CODEOWNERS carried the literal
@{{OWNER}}. GitHub's own validator reports every such rule as Invalid owner, so the file assigns no code owners at all — and any ruleset withrequire_code_owner_reviewbecomes unsatisfiable.just initdoes a repo-wide brace-token substitution and simply never ran here. Measured estate-wide: 54 repos carried it; 2 are genuine templates where the placeholder is correct and are deliberately untouched.🤖 Generated with Claude Code