ng-pr-merge 
Warning:
This is still an experimental tool.
Use at your own risk!
Description
A utility for rebase-merging (AngularJS-related) GitHub PRs.
Tasks performed:
- Verify the CLA signature.
- Fetch the PR as local branch.
- Rebase and merge the local branch into the target branch (e.g.
master
). - Add
Closes #<PR>
to the commit message (at the right place). - Display the resulting changes for inspection (via
git diff
and git log
).
(Experimental feature: Enhanced diff highlighting.) - Interactively clean untracked files (e.g. auto-generated artifacts).
- Run the CI-checks.
- Push the changes to origin.
- Clean everything up (e.g. if something goes wrong).
Usage
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
Testing
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.