Skip to content

Compliance: codeowners-org-leads-not-first #246

Closed

Description

@don-petry

Compliance Finding

Category: settings
Severity: error
Check: codeowners-org-leads-not-first

Detail

CODEOWNERS owner lines must list @petry-projects/org-leads as the FIRST owner. Offending line: {"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}{"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}{"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}

Standard Reference

standards/codeowners-standard.md

Remediation

Run scripts/apply-repo-settings.sh broodly with a token that has admin access to the repository (requires a classic PAT with repo scope or equivalent):

GH_TOKEN=<admin-pat> bash scripts/apply-repo-settings.sh broodly

This script applies all standard settings defined in standards/github-settings.md in one pass.
For a dry run to preview changes without applying: DRY_RUN=true GH_TOKEN=<admin-pat> bash scripts/apply-repo-settings.sh broodly


This issue was automatically created by the weekly compliance audit.

Activity

  1. don-petry commented on May 26, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead Implementation Plan

    Issue: #246 — Compliance: codeowners-org-leads-not-first

    Scope

    Verify and ensure .github/CODEOWNERS lists @petry-projects/org-leads as the first owner on every owner line, per the codeowners-standard.

    Root Cause Analysis

    The compliance audit (run 2026-05-26) found CODEOWNERS was missing or unreadable — the "offending line" in the issue body is three concatenated 404 JSON responses, one per candidate path (CODEOWNERS, .github/CODEOWNERS, docs/CODEOWNERS). The file was absent at audit time; it has since been added in commit f054b7a (part of the repo initialization / dependabot PR #245).

    Current State

    .github/CODEOWNERS already exists with compliant content:

    * @petry-projects/org-leads
    

    A local simulation of the check_codeowners script logic confirms:

    • Rule 1 PASS: @petry-projects/org-leads is the first owner on every line
    • Rule 3 PASS: no individual users
    • Advisory PASS: catch-all * pattern present

    Implementation Checklist

    • Read org CODEOWNERS standard (standards/codeowners-standard.md)
    • Inspect .github/CODEOWNERS content
    • Simulate check_codeowners compliance logic locally — all checks pass
    • Post completion report confirming the file is already compliant

    Tests to Write

    TDD exception: This is a pure configuration file with no behavioral code. No unit/integration tests apply. Compliance is verified by simulating the check_codeowners script against the live file.

    Test Command

    N/A — configuration-only change

  2. don-petry commented on May 26, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead: Implementation Complete

    Plan Execution

    • Read org CODEOWNERS standard (standards/codeowners-standard.md)
    • Inspected .github/CODEOWNERS — file exists and contains * @petry-projects/org-leads
    • Simulated check_codeowners compliance logic locally — all checks pass
    • Rubber-duck review confirmed no changes are required

    Root Cause

    The compliance audit ran on 2026-05-26 before the CODEOWNERS file existed in the repo. The audit script probes three candidate paths (CODEOWNERS, .github/CODEOWNERS, docs/CODEOWNERS); all returned 404 at that time, which were concatenated into the "offending line" shown in the issue body. The file was subsequently created in commit f054b7a with fully compliant content.

    Compliance Simulation Results

    === Rule 1: First owner check ===
    Line: '* @petry-projects/org-leads' | First owner: '@petry-projects/org-leads'
    PASS: org-leads is first owner
    
    === Rule 3: No individual users ===
    PASS: no individual owners
    
    === Advisory: catch-all pattern ===
    PASS: catch-all * pattern exists
    

    Files Changed

    • None — .github/CODEOWNERS already contains the compliant content * @petry-projects/org-leads

    Notes

    TDD exception applied: this is a pure configuration file with no behavioral code. The next weekly compliance audit will verify the finding is resolved and auto-close the issue if configured to do so.

  3. don-petry commented on May 29, 2026

    @don-petry
    ContributorAuthor

    Weekly Compliance Audit (2026-05-29)

    This finding is still open.

    Detail: CODEOWNERS owner lines must list @petry-projects/org-leads as the FIRST owner. Offending line: {"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}{"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}{"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}

    Standard: standards/codeowners-standard.md

  4. don-petry commented on May 30, 2026

    @don-petry
    ContributorAuthor

    Weekly Compliance Audit (2026-05-30)

    This finding is still open.

    Detail: CODEOWNERS owner lines must list @petry-projects/org-leads as the FIRST owner. Offending line: {"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}{"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}{"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}

    Standard: standards/codeowners-standard.md

  5. don-petry commented on May 30, 2026

    @don-petry
    ContributorAuthor
  6. don-petry commented on May 30, 2026

    @don-petry
    ContributorAuthor

    @don-petry-dev-lead

  7. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Jun 2, 2026
  8. don-petry commented on Jun 5, 2026

    @don-petry
    ContributorAuthor

    Weekly Compliance Audit (2026-06-05)

    This finding is still open.

    Detail: CODEOWNERS owner lines must list @petry-projects/org-leads as the FIRST owner. Offending line: {"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}{"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}{"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}

    Standard: standards/codeowners-standard.md

  9. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Jun 6, 2026
  10. don-petry commented on Jun 12, 2026

    @don-petry
    ContributorAuthor

    Weekly Compliance Audit (2026-06-12)

    This finding is still open.

    Detail: CODEOWNERS owner lines must list @petry-projects/org-leads as the FIRST owner. Offending line: {"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}{"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}{"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#get-repository-content","status":"404"}

    Standard: standards/codeowners-standard.md

  11. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Jun 12, 2026
  12. don-petry commented on Jun 19, 2026

    @don-petry
    ContributorAuthor

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

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