Skip to content

[RFE] Implement CODEOWNERS file for standardized PR review workflow #1791

@John15321

Description

@John15321

Current situation

Currently, reviewer assignment for pull requests is handled manually in the Flatcar repositories. Contributors or maintainers must remember to add the correct team (e.g., flatcar-maintainers, nebraska-maintainers) as reviewers. This process is inconsistent and can be easily missed, especially by external contributors, newcomers, or those unfamiliar with the team structure. For newcomers in particular, this is a significant challenge, as they often do not have the required privileges to assign PR reviewers, leading to PRs being overlooked or delayed.

Impact

  • Pull requests, especially from external contributors and newcomers, may not receive timely or appropriate review, which can delay merges and reduce code quality assurance.
  • Contributors without the necessary privileges are unable to assign reviewers at all, increasing frustration and onboarding time.
  • The process is error-prone, burdensome, and does not scale well as the number of contributors and repositories increases.

Ideal future situation

A CODEOWNERS file is present in the repository (or at the org level), which automatically assigns the appropriate GitHub teams as reviewers for all PRs. This ensures that the correct maintainers are always notified of code review requests, regardless of contributor privilege level, streamlining the review process and improving code quality. The CODEOWNERS entries are aligned with the MAINTAINERS.md file as appropriate.

Implementation options

This would work as follows:

For most repositories (with flatcar-maintainers as maintainers):

  • CODEOWNERS file would contain just the flatcar-maintainers group
  • Every PR automatically assigned for review to all flatcar-maintainers
  • This works well for repos that rarely receive contributions

For high-activity repositories (like scripts with more contributors):

  • Individual GitHub Teams would be created (e.g., flatcar-scripts)
  • These teams serve as focused tags that maintainers can join (arbitrarily many)
  • CODEOWNERS would reference these specific teams
  • Reduces noise and allows people to focus attention where needed
  • Ensures we allocate attention to every PR across the org as best as possible

For Nebraska-specific repositories:

  • Use nebraska-maintainers as appropriate

The exact number of teams and initial membership is open for discussion. Coordinate with maintainers to keep CODEOWNERS and MAINTAINERS.md aligned as much as possible.

Additional information

EDIT:

Final chart with specific assigments (everything else, has flatcar-maintainers groups set as the default reviewers):

Teams nebraska-flatcar flatcar-integrations flatcar-communication flatcar-ci flatcar-infra
People as is = illume, t-lo, joaquimrocha, pothos, jepio, miao0miao, tormath1, ervcz t-lo, danzatt, tormath1, John15321, pothos tormath1, sayanchowdhury, ervcz, John15321 tormath1, jepio, sayanchowdhury, chewi, pothos, jepio, dongsupark tormath1, John15321, sayanchowdhury, jepio, pothos, dongsupark
Repositories as is = flatcar-maintainer-private, flatcar-website, go-omaha, nebraska, nebraska-update-agent, ue-rs, update_engine sysext-bakery, flatcar-app-minecraft,flatcar-app-jitsi flatcar-website, flatcar-socials mantle, jenkins-os, jenkins-secret flatcar-linux-build-secrets, flatcar-linux-infra-secrets, flatcar-linux-infra

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Status

    Implemented

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions