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

  1. Log in to your GitLab account.
  2. Go to the project you want to create Deploy Tokens for.
  3. Go to Settings > Repository.
  4. Click on Expand on Deploy Tokens section.
  5. Choose a name and optionally an expiry date for the token.
  6. Choose the desired scopes. <= select read_repository
  7. Click on Create deploy token.
  8. 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.

enter image description here

Copy generated token, we need it for our package.json file.

enter image description here

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.

Tags:

Git

Npm

Gitlab