우리는 개인 프로젝트에 GitLab 을 사용하고 있습니다. npm 모듈로 설치하려는 github의 분기 라이브러리가 있습니다. npm에서 직접 해당 모듈을 설치하는 것은 괜찮습니다. 예를 들면 다음과 같습니다.
npm install git://github.com/FredyC/grunt-stylus-sprite.git
… 올바르게 작동하지만 GitLab에서도 동일하게 수행하면 도메인을 변경하면이 오류가 발생합니다.
npm WARN `git config --get remote.origin.url` returned wrong result (git://git.domain.com/library/grunt-stylus-sprite.git)
npm ERR! git clone git://git.domain.com/library/grunt-stylus-sprite.git Cloning into bare repository 'D:\users\Fredy\AppData\Roaming\npm-cache\_git-remotes\git-git-domain-com-library-grunt-stylus-sprite-git-6f33bc59'...
npm ERR! git clone git://git.domain.com/library/grunt-stylus-sprite.git fatal:unable to connect to git.domain.com:
npm ERR! git clone git://git.domain.com/library/grunt-stylus-sprite.git git.domain.com[0: 77.93.195.214]: errno=No error
npm ERR! Error: Command failed: Cloning into bare repository 'D:\users\Fredy\App
Data\Roaming\npm-cache\_git-remotes\git-git-domain-com-library-grunt-stylus-spr
ite-git-6f33bc59'...
npm ERR! fatal: unable to connect to git.domain.com:
npm ERR! git.domain.com[0: xx.xx.xx.xx]: errno=No error
GitLab의 웹 인터페이스에서이 URL이
git@git.domain.com:library/grunt-stylus-sprite.git
있습니다. 이것을 실행하면 npm 레지스트리에서 모듈 npm install
을 설치하려고합니다 git
.
그러나 URL을 사용하면 git+ssh@git.domain.com:library/grunt-stylus-sprite.git
갑자기 암호를 묻는 메시지가 나타납니다. 내 SSH 키에 암호가 포함되어 있지 않으므로 해당 키를로드 할 수 없다고 가정합니다. 내가 놓친 일부 구성이 있습니까? 키는 내 홈 디렉토리의 표준 위치에 "id_rsa"
있습니다.
저는 Windows 7 x64를 사용하고 있습니다.
최신 정보
NPM v3부터 패키지를 설치할 수있는 GitLab 및 기타 소스 (BitBucket, Gist)에 대한 기본 지원이 있습니다. 불행히도 그것은 공개 된 것들에서만 작동하므로 이것과 정확히 관련이 없지만 일부는 유용하다고 생각할 수 있습니다.
npm install gitlab:<gitlabname>/<gitlabrepo>[#<commit-ish>]
답변
비공개 gitlab 저장소에 연결하는 방법은 다음과 같습니다.
SSH 사용
git+ssh://git@git.mydomain.com:Username/Repository#{branch|tag}
git+ssh://git@git.mydomain.com/Username/Repository#{branch|tag}
HTTPS 사용
git+https://git@git.mydomain.com/Username/Repository#{branch|tag}
HTTPS 및 배포 토큰 사용
git+https://<token-name>:<token>@gitlab.com/Username/Repository#{branch|tag}
답변
대신 git://
use git+ssh://
및 npm이 올바른 작업을 수행해야합니다.
답변
최신 정보
@felix가 주석에서 언급했듯이 (@felix에게 감사드립니다) .NET deploy token
에서 개인 레지스트리를 읽는 데 훨씬 더 관련이 있습니다 gitlab
. 이렇게하면 토큰이 손상되고 공격자는 해당 저장소를 읽을 수 있으며 변경할 수 없습니다.
- 귀하의
GitLab
계정에 로그인하십시오 . - 배포 토큰을 생성하려는 프로젝트로 이동합니다.
- 설정> 리포지토리로 이동합니다.
Expand
토큰 배포 섹션을 클릭합니다 .- 토큰의 이름과 선택적으로 만료 날짜를 선택하십시오.
- 원하는 범위를 선택하십시오. <= 선택
read_repository
- 배포 토큰 생성을 클릭합니다.
- 배포 토큰을 안전한 곳에 저장하십시오. 페이지를 나가거나 새로 고침하면 다시 액세스 할 수 없습니다.
이전 답변
이동 하여 권한이 User Settings > Access Tokens
있는 새 만들기 .access token
read_registry
사본이 생성 token
되었습니다 package.json
. 파일에 필요 합니다.
이제 아래와 같이 package.json
추가하십시오 dependency
.
"my-module": "git+https://Xaqron:token@gitlab.com/Xaqron/my-module"
Xaqron
사용자 이름과 token
생성 된 토큰으로 바꿉니다 . 으로 URL 끝에 branch
및 tag
을 지정할 수 있습니다 #{branch|tag}
.
참고 : 액세스 토큰은 package.json
이 프로젝트에 대한 액세스 권한이 있는 모든 사용자가 저장소를 읽을 수 있으므로 프로젝트 자체가 비공개라고 가정합니다.
답변
질문은 Gitlab에 관한 것이지만이 질문은 Google 검색에서 순위가 상당히 높으므로 Github에서 얻은 유사한 문제를 해결하는 방법에 대한 추가 정보가 있습니다.
나를 위해 URL을 변경하는 것만으로 작동하지 않았습니다. 이 문제를 해결하기 위해 수행해야하는 단계는 다음과 같습니다.
git+ssh://git@github.com:owner/repo.git#master
- 배포 키를 만들고 저장소에 추가
~/.ssh/config
기본 ssh 키 대신 DeployKey를 사용하도록 git config ( 파일이없는 경우 생성)를 편집 합니다.
그 후 npm 설치가 간단히 작동했습니다. 다른 모든 옵션 및 솔루션은 npm 설치 중단으로 인해 발생했습니다.
답변
그것은 REPO (예에 대한 직접 링크를 지원하지 않는 것 같습니다 – 그냥이를 통해 실수를 한단다 다른 사람을 위해, 나는 그것이 전혀 이상 HTTPS 일 수 없었다 https://git.domain.com/user/somerepo.git
),도 그것은을 지원하지 않습니다 .tar
, .tar.bz
또는 .zip
아카이브 버전.
.tar.gz
아카이브 에서만 작동하는 것 같습니다 .
전체 예 (태그 된 버전 포함) :
https://git.domain.com/user/somerepo/repository/archive.tar.gz?ref=v1.2.3
답변
다른 답변 중 어느 것도 개인 gitlab.com 저장소에 대해 나를 위해 일하지 않았습니다.
그러나 이것은 작동합니다.
npm i -S git+ssh://git@gitlab.com:<org>/<project>.git
프로젝트 페이지의 “clone”입력 필드에있는 git ssh 복제 URL git+ssh://
이 앞에 추가됩니다.
답변
내가 어디에서 잘못되고 있는지 말할 수있는 한 git://
프로토콜입니다. GitLab은 클론에 대해 HTTP (s) 및 SSH 만 지원합니다. 따라서 git 프로토콜 대신 이러한 방법 중 하나를 사용해야합니다.