/codeowners-git

A CLI tool that simplifies large-scale monorepo migrations by creating team-specific branches based on CODEOWNERS for streamlined and efficient PR reviews.

Primary LanguageTypeScriptMIT LicenseMIT

codeowners-git

Release npm version license

Managing large-scale migrations in big monorepos with multiple codeowners can be overwhelming. Massive PRs touching thousands of files make it hard for teams to review changes efficiently.

codeowners-git solves this by:

  • Identifying files owned by specific teams using the CODEOWNERS file.
  • Creating compact, team-specific branches with only their affected files.
  • Streamlining the review process with smaller, targeted PRs.
Screen.Recording.2025-01-28.at.10.37.05.PM.mov

Installation

Using npx (recommended)

Run commands directly without installation:

npx codeowners-git <command>

Install globally via npm

npm install -g codeowners-git

Then run commands directly:

codeowners-git <command>

Configuration

The tool automatically detects CODEOWNERS files in:

  1. .github/CODEOWNERS
  2. docs/CODEOWNERS
  3. CODEOWNERS (root directory)

Commands

list

List current CODEOWNERS entries.

Usage:

codeowners-git list [options]

Options:

  • --owner, -o Filter by specific owner
  • --include, -i Include specific patterns

Example:

codeowners-git list -o @myteam

branch

Manage branch permissions in CODEOWNERS file.

Usage:

codeowners-git branch [options]

Options:

  • --owner, -o Specify owner(s) to add/remove
  • --branch, -b Specify branch pattern
  • --message, -m Commit message for changes
  • --no-verify, -n Skips lint-staged and other checks before committing

Example:

codeowners-git branch -o @myteam -b "feature/*" -m "Add feature branch ownership"

Contributing

  1. Clone the repository
  2. Install dependencies:
bun install
  1. Make your changes
  2. Run tests:
bun test
  1. Submit a pull request

Alternatives

@snyk/github-codeowners

codeowners

License

MIT ©