When a pull request changes a recognized part of a codebase, automatically request review from the people or teams responsible for that area. This connects team expertise with repeatable review coverage, especially for sensitive or legacy systems. section 5.4.3
Listing 5.13 An example of a CODEOWNERS file
# This is a comment. # Each line is a file pattern followed by one or more owners. # These owners will be the default owners for everything in # the repo. Unless a later match takes precedence, # @global-owner1 and @global-owner2 will be requested for # review when someone opens a pull request. * @global-owner1 @global-owner2 # Order is important; the last matching pattern takes the most # precedence. When someone opens a pull request that only # modifies JSX files, only @vittoriak and not the global # owner(s) will be requested for a review. *.jsx @vittoriak #This is an inline comment. # You can also use email addresses if you prefer. They'll be # used to look up users just like we do for commit author # emails. *.py nico@example.com # Teams can be specified as code owners as well. Teams should # be identified in the format @org/team-name. Teams must have # explicit write access to the repository. In this example, # the docwriters team in the dev-org organization owns all .md files. *.md @dev-org/docwriters # In this example, @nozomiw owns any files in the build/logs # directory at the root of the repository and any of its # subdirectories. /build/logs/ @nozomiw # The `docs/*` pattern will match files like # `docs/getting-started.md` but not further nested files like # `docs/build-app/troubleshooting.md`. docs/* docs@example.com # In this example, @pedrob owns any file in an apps directory # anywhere in your repository. apps/ @pedrob # In this example, @trangv owns any file in the `/docs` # directory in the root of your repository and any of its # subdirectories. /docs/ @trangv # In this example, any change inside the `/scripts` directory # will require approval from @ndidio or @waltera. /scripts/ @ndidio @waltera # In this example, @lucjar owns any file in a `/logs` directory such as # `/build/logs`, `/scripts/logs`, and `/deeply/nested/logs`. Any changes # in a `/logs` directory will require approval from @lucjar. **/logs @lucjar # In this example, @mirav owns any file in the `/apps` # directory in the root of your repository except for the `/apps/github` # subdirectory, as its owners are left empty. /apps/ @mirav /apps/github
A CODEOWNERS file maps file patterns to individual owners or teams. Later matching patterns take precedence, allowing broad defaults and more specific ownership rules. section 5.4.3
Apply the mechanism deliberately:
- Assign React expertise to JSX changes or specific engineers to legacy-system changes. section 5.4.3
- Place CODEOWNERS in the repository root, docs/, or .github/ directory. section 5.4.3
- Keep the file on the pull request’s base branch so automatic requests use it. section 5.4.3

