npm install from github pull request

GithubNpm

Github Problem Overview


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?

Github Solutions


Solution 1 - Github

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 - Github

"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'. 

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionsfletcheView Question on Stackoverflow
Solution 1 - GithubTad LispyView Answer on Stackoverflow
Solution 2 - GithubVonCView Answer on Stackoverflow