Expand description
CODEOWNERS file parser and ownership lookup. CODEOWNERS file parser and ownership lookup.
Parses GitHub/GitLab-style CODEOWNERS files and matches file paths
to their owners. Used by --group-by owner to group analysis output
by team ownership.
§Pattern semantics
CODEOWNERS patterns follow gitignore-like rules:
*.jsmatches any.jsfile in any directory/docs/*matches files directly indocs/(root-anchored)docs/matches everything underdocs/- Last matching rule wins
- First owner on a multi-owner line is the primary owner
§GitLab extensions
GitLab’s CODEOWNERS format is a superset of GitHub’s. The following GitLab-only syntax is accepted (though it doesn’t affect ownership lookup beyond propagating the default owners within a section):
- Section headers:
[Section name],^[Section name](optional section),[Section name][N](N required approvals) - Section default owners:
[Section] @owner1 @owner2. Pattern lines inside the section that omit inline owners inherit the section’s defaults - Exclusion patterns:
!pathclears ownership for matching files (GitLab 17.10+). A negation that is the last matching rule for a file makes it unowned.
Structs§
- Code
Owners - Parsed CODEOWNERS file for ownership lookup.
Constants§
- UNOWNED_
LABEL - Label for files that match no CODEOWNERS rule.
Functions§
- directory_
group - Extract the first path component for
--group-by directorygrouping.