로컬 컴퓨터에서 'git'에 액세스 할 수없는 GitHub에서 개인 저장소를 어떻게 다운로드 할 수 있습니까?


9

내가하고 싶은 일은 GitHub에서 개인 저장소 아카이브를 다운로드하고 압축을 풀고 아카이브 파일을 제거하고 다운로드 한 프로젝트 내부의 일부 디렉토리를 복사하는 것입니다.

사용하려고 wget했지만 본인을 인증 할 수 없습니다.

wget --header='Authorization: token MY_TOKEN_CREATED_ON_GITHUB' https://github.com/MY_USER/MY_REPO/archive/master.tar.gz -O - | tar xz

나는 또한 시도했다 cURL:

curl -i -H 'Authorization: token MY_TOKEN_CREATED_ON_GITHUB' https://github.com/MY_USER/MY_REPO/archive/master.tar.gz > file.tar.gz | tar xz

여기에 권한 부여가 통과되었지만 파일을 추출 할 수 없습니다.

그렇게하는 방법?


왜 그냥 사용하지 git clone https://github.com/MY_USER/MY_REPO않습니까?
Tero Kilkanen

1
git이없는 서버에서하고 있기 때문에.
Kamil Lelonek 2016 년

문제를 해결할 수도 있습니다 : stackoverflow.com/questions/23347134/…
errordeveloper

답변:


4

솔루션 wget은 다음과 같습니다.

wget --header="Authorization: token <OAUTH-TOKEN>" -O - \
    https://api.github.com/repos/<owner>/<repo>/tarball/<version> | \
    tar xz --strip-components=1 && \
    cp -r <dir1> <dir2> ... <dirn> <destination-dir>/

노트:

  • --strip-components=1 생성 된 GitHub에 포함 된 최상위 디렉토리를 제거합니다.
  • 당신이 뒤에 넣지 할 수 있도록 /함께 복사 할 디렉토리의 끝에서 cp( <dir1>, <dir2>, ..., <dirn>)와 후행가 있음을 /대상 디렉토리의 끝에 존재하는 ( <destination-dir>).

0

고유 한 "개인 액세스 토큰"이 있으면 curl 명령을 사용하여 저장소의 브랜치 아카이브를 다운로드 할 수 있습니다.

curl -k --header "PRIVATE-TOKEN: xxxx" https://gitlab.xxxxx/api/v4/projects/<projectID>/repository/archive?sha=630bc911c1c20283d3980dcb95fd5cb75479bb9c -o myFilename.tar.gz

리포지토리의 메인 페이지에 ProjectID가 표시됩니다.

풀다운에서 원하는 분기를 선택하고 SHA의 오른쪽에 값을 복사 한 후 webUI에서 SHA 값을 얻을 수 있습니다. 아래 스크린 샷을 참조하십시오 :

여기에 이미지 설명을 입력하십시오

이를 수행하는 다른 방법은 다음과 같이 wget을 사용하는 것입니다.

wget --no-check-certificate -O myFilename.zip --header=PRIVATE-TOKEN:xxxx "https://gitlab.xxxx/api/v4/projects/<projectID>/repository/archive.zip?sha=630bc911c1c20283d3980dcb95fd5cb75479bb9c"

도움이 되길 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.