Install npm module from gitlab private repository
You have the following methods for connecting to a private gitlab repository
With SSH
git+ssh://[email protected]:Username/Repository#{branch|tag}
git+ssh://[email protected]/Username/Repository#{branch|tag}
With HTTPS
git+https://[email protected]/Username/Repository#{branch|tag}
With HTTPS and deploy token
git+https://<token-name>:<token>@gitlab.com/Username/Repository#{branch|tag}
Update
As @felix mentioned in comments (thanks @felix) using deploy token
is much more relevant for reading a private registry on gitlab
. This way is the token is compromised, attacker just can read that repository and cannot make changes.
Creating a Deploy Token
- Log in to your
GitLab
account. - Go to the project you want to create Deploy Tokens for.
- Go to Settings > Repository.
- Click on
Expand
on Deploy Tokens section. - Choose a name and optionally an expiry date for the token.
- Choose the desired scopes. <= select
read_repository
- Click on Create deploy token.
- Save the deploy token somewhere safe. Once you leave or refresh the page, you won’t be able to access it again.
Old answer
Goto User Settings > Access Tokens
and create a new access token
with read_registry
permission.
Copy generated token
, we need it for our package.json
file.
Now in package.json
add the dependency
as below:
"my-module": "git+https://Xaqron:[email protected]/Xaqron/my-module"
Replace Xaqron
with your username and token
with the generated token. You can specify branch
and tag
at the end of url by #{branch|tag}
.
Note: Since access token is located in package.json
anyone who has access to this project can read the repository, so I assume your project is private itself.
Instead of git://
, use git+ssh://
and npm should do the right thing.