ProgramingTip

GitHub Api 다운로드 zip 또는 tarball 링크

bestdevel 2020. 12. 29. 07:44
반응형

GitHub Api 다운로드 zip 또는 tarball 링크


여기에 zip / tarball이 생성되는 방법에 대한 좋은 링크가 있습니다.

github에서 zip을 다운로드 할 때 파일 이름 끝에있는 16 진수는 무엇을 나타냅니다.

하지만 GitHub APIv3를보고 있는데 뭔가 빠진이 있는지 궁금했습니다.

  1. API 호출을 통해 zip / tarball 링크를 얻는 방법이 있습니까?

  2. 어떤 경우에 git 바이너리 또는 라이브러리를 사용하지 않고 의미, API 호출을 사용하여 필요한 데이터를 추출하고 필요한 URL로 어셈블 할 수 있습니까?

두 번째 질문이 stackoverflow에 대해 약간의 비합리적이라는 것을 알고 있고 저에게 약간의 간단한 프로젝트 코드 스 니펫을 버리는 대신에 올바른 방향으로 저를 약간의 넣는 경우 두 번째 질문을 선호합니다. . 아니면 그냥 가능합니다.


은 할 수 당신 있습니다 wget당신의 방법 밖으로 GitHub의 의의는 타르 파일 (얻을 REPO 아카이브 ) :

wget --no-check-certificate https://github.com/User/repo/archive/master.tar.gz

# better, if the certificate authorities are present:
wget https://github.com/User/repo/archive/master.tar.gz

사용자 'User's repo'repo '에서'master '라는 파일을 얻습니다.

업데이트 된 V3의 API URL은 다음과 같습니다

https://api.github.com/repos/User/repo/:archive_format/:ref
#
# two possibilities for fomat:
https://api.github.com/repos/User/repo/tarball/master
https://api.github.com/repos/User/repo/zipball/master

# from github example:
$curl -L https://api.github.com/repos/octokit/octokit.rb/tarball > octokit.tar.gz

그런 다음 tar xpvf master전체 아카이브를 찾을 수 있습니다 . 참조 한 질문에
설명 된 명명 규칙에 따라 디렉토리가 생성 됩니다.

다운로드 서비스 "노드로드가 필요합니다" 덕분에 GitHub에서 아카이브를 가져옵니다 .


ligemer편집 에서 제안 된 다음 예제 :

2016-08-25 편집 -Wget, 변수 및 Untar를 셸 예제 :

#!/bin/bash -ex

# arguments:
# token = $1
# organization = $2
# repo name = $3
# branch = $4

wget --header="Authorization: token ${1}" --header="Accept:application/vnd.github.v3.raw" -O - https://api.github.com/repos/${2}/${3}/tarball/${4} | tar xz

다음을 통해 전화 :

$ scriptName.sh token my-organization site.com master

위의 명령은 펼쳐와 디렉토리에 Github 폴더를 다운로드하고 추출합니다.


Diogo Quintela의견에서 다음 과 같이 제안 합니다 .

다음 예제에서는 디렉토리를 다운로드, 추출 및 잘라낼 수 있습니다.

curl -L https://api.github.com/repos/octokit/octokit.rb/tarball | tar xz --strip=1 

구문은 문서에 설명 되어 있습니다 .

GET /repos/:owner/:repo/:archive_format/:ref

다음 예제 URL의 (a 통해 가리 302 리디렉션 의 우편 아카이브) master해들리 / DevTools로드 REPO :

https://api.github.com/repos/hadley/devtools/zipball/master

(에 대한 다른 옵션은 archive_format입니다 tarball.)

이 API를 언제 사용할 수 있을지 모르겠습니다.

참조 URL : https://stackoverflow.com/questions/8377081/github-api-download-zip-or-tarball-link

반응형