A utility for rebase-merging (AngularJS-related) GitHub PRs.

Downloads in past


110.0.36a year ago6 years agoMinified + gzip package size for @gkalpak/ng-pr-merge in KB


Warning: This is still an experimental tool. Use at your own risk!


A utility for rebase-merging (AngularJS-related) GitHub PRs. Tasks performed:
  1. Verify the CLA signature.
  2. Fetch the PR as local branch.
  3. Rebase and merge the local branch into the target branch (e.g. master).
  4. Add Closes #<PR> to the commit message (at the right place).
  5. Display the resulting changes for inspection (via git diff and git log).
_(Experimental feature: Enhanced diff highlighting.)_
  1. Interactively clean untracked files (e.g. auto-generated artifacts).
  2. Run the CI-checks.
  3. Push the changes to origin.
  4. Clean everything up (e.g. if something goes wrong).


Using in the command-line:
# Show version info
ng-pr-merge --version

# Show usage instructions
ng-pr-merge --usage

# Merge a PR
ng-pr-merge 12345

You can optionally specify the GitHub repo and/or branch to merge to (by default angular/angular.js and master respectively):
# Use non-default repo and branch
ng-pr-merge 12345 --branch="some-branch" --repo="some-user/some-repo"

Finally, adding the --instructions argument, will display the commands that need to be run, but not actually do anything. This is useful if you want to run the commands yourself:
# Only show instructions
ng-pr-merge 12345 [--branch="some-branch"] [--repo="some-user/some-repo"] --instructions


The following test-types/modes are available:
  • Code-linting: npm run lint
Lint JavaScript files using ESLint.
  • Unit tests: npm run test-unit
Run all the unit tests once. These tests are quick and suitable to be run on every change.
  • E2E tests: npm run test-e2e
Run all the end-to-end tests once. These test may hit actual API endpoints or perform expensive I/O operations and are considerably slower than unit tests.
  • All tests: npm test / npm run test
Run all of the above tests (code-linting, unit tests, e2e tests). This command is automatically run before npm version and npm publish.
  • "Watch" mode: npm run test-watch
Watch all files and rerun the unit tests whenever something changes. For performance reasons, code-linting and e2e tests are omitted.