Skip to content

Set up CODEOWNERS for automated review assignment #788

@2chanhaeng

Description

@2chanhaeng

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Priority

    Medium

    Effort

    Low

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions