Achieving 100% ownership
Improve release safety & quality with high ownership
In an ideal case, you want 100% of your code to be covered by owners who have the highest expertise in the area. This significantly increases your release safety and overall code quality as each PR goes through owner review and approval.
However, achieving this has been notoriously hard to achieve. The good news, we have built the tooling to make it easy.
What is the challenge?
GitHub and GitLab offer CODEOWNERS. It is a handy file that allows you to list code owners using patterns. GitHub and GitLab later use this data to assign reviewers for a PR.
Since CODEOWNERS is a simple text file, there are a few issues that make ownership mapping and maintenance difficult:
You don't have historical data about who had the most experience with the file.
Developers constantly change priorities, an owner who made sense 3 months ago, may no longer possess the necessary knowledge as the file was completely overwritten.
Using patterns, you may accidentally assign multiple owners to the same file.
Because of this, most CODEOWNERS files are usually messy and are not up to date.
Solving this with Codigy
We've build tools to make ownership mapping and maintenance easy. There are three key elements to help achieve your goal:
1. Confidence Score
Codigy continuously monitors which engineering team has most hands-on experience with a given file, folder, module or repository. Codigy calculates this score based on changes observed in git.
2. Ingest your CODEOWNERS file & generate a new one
Codigy currently supports GitHub CODEOWNERS and GitHub groups. With this data, Codigy can use CODEONWERS as a data source and also generate new CODEOWNERS files for you. GitLab CODEOWNERS support will soon be released.
3. Codebase Ownership Tool
This tool generates a map of your codebase and overlays CODEONWERS and Confidence data on top. Both polyrepo and monorepo cases are supported.
Starting from scratch?
Codebase Ownership map will show you team confidence distribution on your codebase map. That means, Codigy will identify a team with highest expertise for each object in your codebase (as long as it's not a stale, inactive code) - exactly what you were looking for.
If some suggested owners don't line up with your plans, you can override and assign an owner manually.
Now, generate and export new CODEOWNERS files, add them to your repositories and git version control system will do the rest. Easy.
Already have CODEOWNERS?
Codigy will ingest your existing CODEOWNERS files and visualise data on Codebase Ownership map.
Using this, you will be able to see:
Files where multiple owners are assigned;
Files where no owners are assigned;
Files where CODEOWNERS conflicts with Confidence Score suggestion;
You will be able to promptly clean-up CODEOWNERS right on the codebase map. Once you are happy with the assigned owners, you can generate and export new CODEOWNERS files.
This page was last revised on January 23, 2023
Back to main