[git] 비공개 Github Repo를 NPM 종속성으로 사용하는 방법

어떻게이 같은 개인 Github에서의 환매 특약 나열 할 "dependency"의를 package.json? npm의 Github URL 구문을 시도했지만 패키지 폴더에서 ryanve/example수행 npm install하면 개인 종속성에 대해 “설치할 수 없습니다”오류가 발생합니다. 개인 저장소에 따라 특별한 구문 (또는 다른 메커니즘)이 있습니까?



답변

https 및 oauth 또는 ssh 를 통해 수행 할 수 있습니다 .

https 및 oauth : 범위가 “repo” 인 액세스 토큰작성한 후 다음 구문을 사용하십시오 .

"package-name": "git+https://<github_token>:x-oauth-basic@github.com/<user>/<repo>.git"

또는

ssh : ssh를 설정 한 후 다음 구문을 사용하십시오.

"package-name": "git+ssh://git@github.com:<user>/<repo>.git"

(사용자 앞에 슬래시 대신 콜론을 사용하십시오)


답변

누군가 Git Lab에 대한 다른 옵션을 찾고 있는데 위의 옵션이 작동하지 않으면 다른 옵션이 있습니다. Git Lab 서버의 로컬 설치의 경우 아래의 접근 방식을 통해 패키지 종속성을 포함시킬 수 있음을 발견했습니다. 액세스 토큰을 생성하여 사용했습니다.

$ npm install --save-dev https://git.yourdomain.com/userOrGroup/gitLabProjectName/repository/archive.tar.gz?private_token=InsertYourAccessTokenHere

물론 이런 식으로 액세스 키를 사용하는 경우 제한된 권한 집합이 있어야합니다.

행운을 빕니다!


답변

git에는 https 형식이 있습니다

https://github.com/equivalent/we_demand_serverless_ruby.git

이 형식은 사용자 + 비밀번호를 허용합니다

https://bot-user:xxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/equivalent/we_demand_serverless_ruby.git

따라서 봇처럼 사용할 새 사용자를 만들고 NPM 모듈에로드하려는 리포지토리를 읽을 수있는 충분한 권한 만 추가하면됩니다.
packages.json

 Github > Click on Profile > Settings > Developer settings > Personal access tokens > Generate new token

범위 선택 파트에서 on repo : 개인 저장소의 모든 권한을 확인하십시오.

이는 토큰이 사용자가 볼 수있는 개인 저장소에 액세스 할 수 있도록하기위한 것입니다.

이제 조직에서 새 그룹을 만들고이 사용자를 그룹에 추가하고이 방법으로 가져올 것으로 예상되는 리포지토리 만 추가하십시오 (읽기 전용 권한!).

이 설정 을 개인 저장소에만 푸시해야합니다

그런 다음 이것을 / packages.json에 추가 할 수 있습니다 (bot-user는 사용자 이름, xxxxxxxxx는 생성 된 개인 토큰입니다)

// packages.json


{
  // ....
    "name_of_my_lib": "https://bot-user:xxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/ghuser/name_of_my_lib.git"
  // ...
}

https://blog.eq8.eu/til/pull-git-private-repo-from-github-from-npm-modules-or-bundler.html


답변