CLI tools for Node.js Core collaborators.
npm install -g node-core-utils
If you would prefer to build from the source, install and link:
git clone git@github.com:nodejs/node-core-utils.git
cd node-core-utils
npm install
npm link
Most of the tools need your GitHub credentials to work. You can either
- Run any of the tools and you will be asked in a prompt to provide your username and password in order to create a personal access token.
- Or, create a personal access token yourself on Github, then set them up using an editor.
If you prefer option 2, follow these instructions to create the token.
Note: We need to read the email of the PR author in order to check if it matches
the email of the commit author. This requires checking the box user:email when
you create the personal access token (you can edit the permission later as well).
Then create an rc file (~/.ncurc or $XDG_CONFIG_HOME/ncurc):
{
"username": "your_github_username",
"token": "token_that_you_created"
}Note: you could use ncu-config to configure these variables, but it's not
recommended to leave your tokens in your command line history.
Configure variables for node-core-utils to use. Global variables are stored
in ~/.ncurc while local variabels are stored in $PWD/.ncu/config.
ncu-config <command>
Commands:
ncu-config set <key> <value> Set a config variable
ncu-config get <key> Get a config variable
ncu-config list List the configurations
Options:
--version Show version number [boolean]
--help Show help [boolean]
--global [boolean] [default: false]
A custom Git command for landing pull requests. You can run it as
git-node or git node. To see the help text, run git node help.
-
It's a Git command, so make sure you have Git installed, of course.
-
Install core-validate-commit
$ npm install -g core-validate-commit -
Configure your upstream remote and branch name. By default it assumes your remote pointing to https://github.com/nodejs/node is called
upstream, and the branch that you are trying to land PRs on ismaster. If that's not the case:$ cd path/to/node/project $ ncu-config upstream your-remote-name $ ncu-config branch your-branch-name
- Landing multiple commits: https://asciinema.org/a/148627
- Landing one commit: https://asciinema.org/a/157445
$ cd path/to/node/project
$ git node land --abort # Abort a landing session, just in case
$ git node land $PRID # Start a new landing session
$ git rebase -i upstream/master # Put `edit` on every commit that's gonna stay
$ git node land --amend # Regenerate commit messages in HEAD
$ git rebase --continue # Repeat until the rebase is done
$ git node land --final # Verify all the commit messages
This tool is inspired by Evan Lucas's node-review, although it is a CLI implemented with the Github GraphQL API.
get-metadata <identifier>
Retrieves metadata for a PR and validates them against nodejs/node PR rules
Options:
--version Show version number [boolean]
--owner, -o GitHub owner of the PR repository [string]
--repo, -r GitHub repository of the PR [string]
--file, -f File to write the metadata in [string]
--check-comments Check for 'LGTM' in comments [boolean]
--max-commits Number of commits to warn [number] [default: 3]
--help, -h Show help [boolean]
Examples:
PRID=12345
# fetch metadata and run checks on nodejs/node/pull/$PRID
$ get-metadata $PRID
# is equivalent to
$ get-metadata https://github.com/nodejs/node/pull/$PRID
# is equivalent to
$ get-metadata $PRID -o nodejs -r node
# Or, redirect the metadata to a file while see the checks in stderr
$ get-metadata $PRID > msg.txt
# Using it to amend commit messages:
$ get-metadata $PRID -f msg.txt
$ echo -e "$(git show -s --format=%B)\n\n$(cat msg.txt)" > msg.txt
$ git commit --amend -F msg.txtIf you are using git bash and having trouble with output use winpty get-metadata.cmd $PRID.
current known issues with git bash:
- git bash Lacks colors.
- git bash output duplicates metadata.
- Generate
PR-URL - Generate
Reviewed-By - Generate
Fixes - Generate
Refs - Check for CI runs
- Check if committers match authors
- Check 48-hour wait
- Check two TSC approval for semver-major
- Warn new commits after reviews
- Check number of files changed (request pre-backport)
See CONTRIBUTING.md.
MIT. See LICENSE.