npm install from github pull request

Loooking at the npm install docs it looks possible to npm install from a github repo.

Is it also possible to install specifically from a pull request?

Is the solution just to install based on the last commit (last sha) of the pull request?


Solution 1:

GitHub is maintaining a namespace for each PR in the original repo, so this works as well:

npm install <user>/<repo>#pull/<id>/head

NOTE: It doesn't seeem to be working with NPM v. 5. See the comment below. Works with npm 7.0.23 and possibly earlier versions. See the comment below.

for example:

npm i --save-dev json-schema-faker/json-schema-faker#pull/129/head

or with yarn:

yarn add <user>/<repo>#<id>/head

for example:

yarn add json-schema-faker/json-schema-faker#129/head

Note that in Yarn case there is no pull/ segment in the package identifier.

This may be helpful if you need to automate the installation or repo / branch from where PR is originating is removed. See also Modifying an inactive pull request locally at GitHub.

Solution 2:

"How to install NodeJS package from GitHub directly?" mentions that you can specify a branch.

So if you know the repo and branch from which a PR comes from, you can do a:

npm install git+https://github.com/user/repo.git#branch 

Worth saying that you might need to escape the # to use a specific branch from the shell, i.e.:

npm install git+https://github.com/user/repo.git\#branch 

Note that repository you want to install must be a npm module, it must contain a package.json file or else you will get this error:

Error: ENOENT, open 'tmp.tgz-unpack/package.json'.