CODEOWNERS is a GitHub feature that maps files and directories to the people or teams responsible for them. When a pull request touches a matched path, GitHub automatically requests reviews from the designated owners, and—if branch protection requires it—can block merges until those owners approve. It removes the manual step of figuring out who should review what.
Fedify will participate in 2026 OSSCA, which means a large influx of new contributors and a correspondingly higher volume of pull requests over the program period. Without automation, routing each PR to the right maintainer becomes a bottleneck that slows feedback and risks changes landing in subsystems without the appropriate review. A CODEOWNERS file makes review assignment deterministic and scales review coverage across the monorepo's many packages.
GitHub looks for the file in three locations: the repository root, docs/, or .github/. Since the repository root already holds a substantial number of configuration and documentation files, we should place the file at .github/CODEOWNERS to avoid further cluttering the root.
The initial content should map the monorepo's structure to maintainers—at minimum a default owner via *, plus per-package entries under packages/ (e.g., /packages/fedify/, /packages/vocab/, /packages/cli/, the database adapters, and framework integrations) and /docs/. Later patterns override earlier ones, so the catch-all * should appear first, followed by progressively more specific paths.
As a follow-up, we may want to enable branch protection rules that require Code Owner review on the relevant branches so the assignments are enforced rather than advisory. The exact owner mappings should be confirmed with the maintainers before the file is merged.
CODEOWNERS is a GitHub feature that maps files and directories to the people or teams responsible for them. When a pull request touches a matched path, GitHub automatically requests reviews from the designated owners, and—if branch protection requires it—can block merges until those owners approve. It removes the manual step of figuring out who should review what.
Fedify will participate in 2026 OSSCA, which means a large influx of new contributors and a correspondingly higher volume of pull requests over the program period. Without automation, routing each PR to the right maintainer becomes a bottleneck that slows feedback and risks changes landing in subsystems without the appropriate review. A CODEOWNERS file makes review assignment deterministic and scales review coverage across the monorepo's many packages.
GitHub looks for the file in three locations: the repository root, docs/, or .github/. Since the repository root already holds a substantial number of configuration and documentation files, we should place the file at .github/CODEOWNERS to avoid further cluttering the root.
The initial content should map the monorepo's structure to maintainers—at minimum a default owner via *, plus per-package entries under packages/ (e.g., /packages/fedify/, /packages/vocab/, /packages/cli/, the database adapters, and framework integrations) and /docs/. Later patterns override earlier ones, so the catch-all * should appear first, followed by progressively more specific paths.
As a follow-up, we may want to enable branch protection rules that require Code Owner review on the relevant branches so the assignments are enforced rather than advisory. The exact owner mappings should be confirmed with the maintainers before the file is merged.