Improve review process by using CODEOWNERS

Topic

Indicate which topic your proposal falls under:

Enhance Core Contributor Onboarding
Improve Collaboration, Communication & Reporting
Improve Fulfilling Commitments and Planning Processes
Improve Review Processes

Overview

Finding reviewers for a pull request can be challenging because there is no clear mapping of specific code sections to core contributors who are familiar with them. New contributors, in particular, may struggle to identify suitable reviewers for their pull requests, and it would be beneficial to automate this process.

Solution

The solution relates to the proposal https://openedx.atlassian.net/wiki/spaces/COMM/pages/4516577281/Improving+OSPR+Management#Making-CC-info-for-individual-repositories-easily-discoverable by @Tim Krones and @Kshitij Sobti and be implemented together in collaboration.

We can utilize GitHub’s CODEOWNERS file to automatically notify reviewers on pull requests targeting specific sections of code within each repository. Each CC should be included in these teams as part of the onboarding process. We can already observe this in action in some repositories, such as the CODEOWNERS file in the frontend-app-authoring repository, where @openedx/2u-tnl is included as a reviewer by default due to its inclusion in the CODEOWNERS file.

Some tools which can help generate and maintain codeowners file in large repositories like edx-platform.

Impact

Improve review process by automatically notifying code owners and as result reduce time required for pull request reviews without compromising quality.

Timeline

  • Generating codeowners file for each repository and creating teams based on code sections and repositories. We’ll need someone with admin privileges to create those teams in github. Estimate: 30-40 hours

  • Adding github action to compile folder local codeowner files into a single global codeowners file. We also need to update the github pull request template to include information about creating codeowners file along with required teams to include in this file Estimate: 5-10 hours.