Skip to content

Compliance: codeowners-no-catchall #178

Closed

Description

@don-petry

Compliance Finding

Category: settings
Severity: warning
Check: codeowners-no-catchall

Detail

CODEOWNERS has no default * catch-all pattern — files not matched by a path rule will have no owner and require_code_owner_review will not apply to them

Standard Reference

standards/codeowners-standard.md

Remediation

Please review the linked standard and bring this repository into compliance.

See the full standards documentation for implementation guidance.


This issue was automatically created by the weekly compliance audit.

Activity

  1. don-petry commented on May 8, 2026

    @don-petry
    ContributorAuthor

    Claude finished @don-petry's task in 6m 1s —— View job • claude/issue-178-20260508-1418 • Create PR ➔


    Fixing CODEOWNERS catch-all compliance issue

    • Gather context (read issue)
    • Read org CODEOWNERS standard
    • Read current CODEOWNERS file
    • Verify compliance and update file
    • Commit and push changes
    • Create PR
    • Self-review PR (comment-only change, no issues found)
    • Check CI (queued — comment-only change, no failures expected) and tag code owners (@don-petry)

    Finding: The .github/CODEOWNERS file already had the required * @petry-projects/org-leads catch-all (added in #172, 2026-05-04). Issue #178 was a false positive — the compliance audit had an API-fetch failure on that run, as evidenced by issue #177 showing raw 404 JSON as "owner-line content." Added explanatory comments to make the catch-all's compliance purpose explicit.

    PR opened: #184

  2. don-petry commented on May 11, 2026

    @don-petry
    ContributorAuthor

    Weekly Compliance Audit (2026-05-11)

    This finding is still open.

    Detail: CODEOWNERS has no default * catch-all pattern — files not matched by a path rule will have no owner and require_code_owner_review will not apply to them

    Standard: standards/codeowners-standard.md

  3. don-petry commented on May 12, 2026

    @don-petry
    ContributorAuthor

    Weekly Compliance Audit (2026-05-12)

    This finding is still open.

    Detail: CODEOWNERS has no default * catch-all pattern — files not matched by a path rule will have no owner and require_code_owner_review will not apply to them

    Standard: standards/codeowners-standard.md

  4. don-petry commented on May 12, 2026

    @don-petry
    ContributorAuthor

    Weekly Compliance Audit (2026-05-12)

    This finding is still open.

    Detail: CODEOWNERS has no default * catch-all pattern — files not matched by a path rule will have no owner and require_code_owner_review will not apply to them

    Standard: standards/codeowners-standard.md

  5. don-petry commented on May 12, 2026

    @don-petry
    ContributorAuthor

    Weekly Compliance Audit (2026-05-12)

    This finding is still open.

    Detail: CODEOWNERS has no default * catch-all pattern — files not matched by a path rule will have no owner and require_code_owner_review will not apply to them

    Standard: standards/codeowners-standard.md

  6. don-petry commented on May 12, 2026

    @don-petry
    ContributorAuthor

    Weekly Compliance Audit (2026-05-12)

    This finding is still open.

    Detail: CODEOWNERS has no default * catch-all pattern — files not matched by a path rule will have no owner and require_code_owner_review will not apply to them

    Standard: standards/codeowners-standard.md

  7. don-petry commented on May 12, 2026

    @don-petry
    ContributorAuthor

    Weekly Compliance Audit (2026-05-12)

    This finding is still open.

    Detail: CODEOWNERS has no default * catch-all pattern — files not matched by a path rule will have no owner and require_code_owner_review will not apply to them

    Standard: standards/codeowners-standard.md

  8. don-petry commented on May 13, 2026

    @don-petry
    ContributorAuthor

    Weekly Compliance Audit (2026-05-13)

    This finding is still open.

    Detail: CODEOWNERS has no default * catch-all pattern — files not matched by a path rule will have no owner and require_code_owner_review will not apply to them

    Standard: standards/codeowners-standard.md

  9. don-petry commented on May 15, 2026

    @don-petry
    ContributorAuthor

    Weekly Compliance Audit (2026-05-15)

    This finding is still open.

    Detail: CODEOWNERS has no default * catch-all pattern — files not matched by a path rule will have no owner and require_code_owner_review will not apply to them

    Standard: standards/codeowners-standard.md

  10. 39 remaining items

  11. don-petry commented on Jun 19, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead Implementation Plan

    Issue: #178 — Compliance: codeowners-no-catchall

    Scope

    Verify the root CODEOWNERS against the exact check_codeowners logic in petry-projects/.github scripts/compliance-audit.sh and bring it into compliance with the catch-all (*) requirement.

    Investigation Finding

    The audit's codeowners-no-catchall check extracts non-comment owner lines, takes the first whitespace token (the path pattern) of each, and warns only if none equals exactly *:

    if ! echo "$owner_lines" | awk '{print $1}' | grep -qxF '*'; then
      add_finding ... "codeowners-no-catchall" ...

    The current root CODEOWNERS is:

    * @petry-projects/org-leads
    

    This already provides the * catch-all, lists @petry-projects/org-leads as the FIRST (and only) owner, and uses no individual users — satisfying all four check_codeowners rules. The finding appears to have been resolved by a prior change after the issue was filed (2026-05-08).

    Implementation Checklist

    • Re-confirm root CODEOWNERS passes the exact catch-all check
    • Confirm no competing .github/CODEOWNERS / docs/CODEOWNERS shadows it (audit reads root first, then breaks)
    • Run the required repo lint (.dev-lead/scripts/dev-lead-lint.sh)

    Tests to Write

    • N/A — config-only compliance verification with no observable behavioral change (TDD exception per workflow Phase 2). The behavior is covered upstream by test/scripts/compliance-audit/codeowners-catchall.bats in petry-projects/.github.

    Test Command

    bash ".dev-lead/scripts/dev-lead-lint.sh"

  12. don-petry commented on Jun 19, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead: Implementation Complete — Already Compliant (no code change required)

    Conclusion

    The codeowners-no-catchall finding is already resolved. The root CODEOWNERS contains the required default * catch-all rule. No source change was needed, and none was made (the working tree is clean) — fabricating a change to an already-correct config file would be out of scope.

    Plan Execution

    • Re-confirmed root CODEOWNERS passes the exact catch-all check from petry-projects/.github scripts/compliance-audit.sh (check_codeowners)
    • Confirmed no competing .github/CODEOWNERS / docs/CODEOWNERS exists (audit reads root first, then breaks)
    • Ran the required repo lint — passes

    Evidence

    Current root CODEOWNERS:

    # CODEOWNERS
    # Standard: use the @petry-projects/org-leads team for all code owner
    # assignments. See petry-projects/.github standards/codeowners-standard.md
    
    * @petry-projects/org-leads
    

    Applying the audit's exact catch-all logic to the non-comment owner lines:

    owner_lines = [* @petry-projects/org-leads]
    awk '{print $1}' -> *
    grep -qxF '*'    -> match  => catch-all PRESENT => no finding
    

    This also satisfies the other check_codeowners rules: @petry-projects/org-leads is the FIRST owner, and there are no forbidden individual-user owners.

    Test Results

    $ bash ".dev-lead/scripts/dev-lead-lint.sh"
      [lint] shellcheck on 2 file(s)...
      [lint] validating CODEOWNERS...
    OK: CODEOWNERS
      [lint] all checks passed
    exit: 0
    
    $ git status --porcelain
    (clean — no changes)
    

    TDD note (workflow Phase 2 exception): this is a config-only compliance verification with no observable behavioral change, so no new test was added. The catch-all behavior is covered upstream by test/scripts/compliance-audit/codeowners-catchall.bats in petry-projects/.github.

    Files Changed

    • None. The repository was already in compliance.

    Notes

    • Timeline: issue filed 2026-05-08; the standard's migration history records broodly#172 migrating to * @petry-projects/org-leads (2026-05-04), and the catch-all is present in current main (last touched in commit 2209de2, 2026-06-18). The finding is stale.
    • Recommendation: this issue can be closed as already-resolved. No PR is necessary since there is no diff.
  13. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Jun 19, 2026
  14. don-petry commented on Jun 19, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead: Already Compliant — No Changes Required

    This finding is stale. The repository already satisfies the codeowners-no-catchall check.

    Verification

    The root CODEOWNERS file contains a default * catch-all owned by the org-leads team:

    * @petry-projects/org-leads
    

    Running the exact logic from compliance-audit.sh check_codeowners (line 741) against the current file:

    === first field == '*' ? ===
    PASS: catch-all '*' present
    === org-leads first owner on every line? ===
    @petry-projects/org-leads
    

    The repo also passes .dev-lead/scripts/dev-lead-lint.sh:

      [lint] validating CODEOWNERS...
    OK: CODEOWNERS
      [lint] all checks passed
    

    Timeline

    • Issue created: 2026-05-08 (audit ran before the compliant CODEOWNERS was in place)
    • Current CODEOWNERS with the * catch-all is present on this branch (file authored in commit 2209de2, 2026-06-18)

    Compliance against codeowners-standard.md

    • Default * catch-all pattern present
    • @petry-projects/org-leads is the first (and only) owner
    • No individual named users listed as owners

    Files Changed

    None — the repository is already in compliance. No tests were written (behavior-preserving / no-op exception per Phase 2, since there is no code change to make).

    Recommendation

    This issue can be closed. The next weekly compliance audit will no longer report this finding.

  15. don-petry commented on Jun 19, 2026

    @don-petry
    ContributorAuthor

    Resolved! This check is now passing as of 2026-06-19. Closing automatically.

  16. added 2 commits that reference this issue on Jun 19, 2026
  17. added 5 commits that reference this issue on Aug 4, 2026
  18. added a commit that references this issue on Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    compliance-auditAutomated compliance audit findingdev-leadFor dev-lead agent pickup

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions