JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 29
  • Score
    100M100P100Q68433F
  • License MIT

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (codeowners-git) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    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

    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 ©