1.2.0 • Published 4 months ago

codeowners-git v1.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

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.

https://github.com/user-attachments/assets/7cc0a924-f03e-47f3-baad-63eca9e8e4a8

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
  • --push, -p Push branch to remote after commit
  • --remote, -r Remote name to push to (default: "origin")
  • --upstream, -u Upstream branch name (defaults to local branch name)
  • --force, -f Force push to remote
  • --keep-branch-on-failure, -k Keep the created branch even if operation fails

Example:

codeowners-git branch -o @myteam -b "feature/new-feature" -m "Add new feature" -p

multi-branch

Create branches for all codeowners with changes.

Usage:

codeowners-git multi-branch [options]

Options:

  • --branch, -b Base branch name (will be prefixed with codeowner name)
  • --message, -m Base commit message (will be suffixed with codeowner name)
  • --no-verify, -n Skips lint-staged and other checks before committing
  • --push, -p Push branches to remote after commit
  • --remote, -r Remote name to push to (default: "origin")
  • --upstream, -u Upstream branch name pattern (defaults to local branch name)
  • --force, -f Force push to remote
  • --keep-branch-on-failure, -k Keep created branches even if operation fails

Example:

codeowners-git multi-branch -b "feature/new-feature" -m "Add new feature" -p

This will:

  1. Find all codeowners for the changed files in your repository
  2. For each codeowner (e.g., @team-a, @team-b):
    • Create a branch like team-a/feature/new-feature
    • Commit only the files owned by that team
    • Add a commit message like "Add new feature - @team-a"
    • Push each branch to the remote if the -p flag is provided

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 ©

1.2.0

4 months ago

1.1.0

5 months ago

1.0.5

5 months ago

1.0.4

5 months ago

1.0.3

5 months ago

1.0.2

5 months ago

1.0.1

5 months ago

1.0.0

5 months ago