happytails.ai

Code ownership coverage checker

Find files that no CODEOWNERS rule covers, files a rule leaves without owners, and rules that match nothing.

Up to 100,000 characters and 1,000 rules, and up to 2,000 paths in 200,000 characters, with rules times path segments under 30,000. Matching runs in your browser. Downloads: per-path CSV, JSON report and owner counts CSV. One rule per line: a path pattern followed by owners. Up to 100,000 characters. Review the settings before running.

Your result

Report a problem or share an idea.

How to use Code ownership coverage checker
  1. Paste your CODEOWNERS file.
  2. List the repository files to check, one per line.
  3. Choose the GitHub or GitLab dialect and run the check.
  4. Review uncovered and unowned files, then download the CSV or JSON report.

Useful next steps

What it does

Each listed file is matched against the CODEOWNERS rules and marked covered, unowned (the deciding rule lists no owners) or uncovered. The report also counts files per owner and lists rules that match none of the listed files.

Matching rules

Patterns follow gitignore syntax. In the GitHub dialect the last matching rule wins, a rule that matches a folder owns everything inside it, and docs/* owns only files directly in docs. Lines using ! negation or [ ] character ranges are skipped and reported, as GitHub does. In the GitLab dialect sections with the same name are combined whatever their letter case, the last match wins inside each section, owners from every matching section are combined, and section default owners apply to rules without owners.

Limits

Owners are only checked for syntax (@user, @org/team or an email address); the tool cannot see whether they exist or have write access. Only the paths you list are checked, and every line of the path list is a path, including names that start with #.