web-dev-qa-db-ja.com

GitHub ApiダウンロードZipまたはtarballリンク

ここに、Zip/tarball文字列の作成方法に関する良いリンクがありました

GitHubからZipをダウンロードするとき、ファイル名の最後の16進文字列は何を表しますか?

しかし、私はGitHub APIv3を見ており、何かが足りない場合は興味がありました。

  1. API呼び出しを介してZip/tarballリンクを取得する方法はありますか?

  2. そうでない場合、gitバイナリまたはライブラリを使用せずにその文字列を構築する方法はありますか?つまり、さまざまなAPI呼び出しを使用して、必要なデータを引き出し、必要なURLにアセンブルできますか?

私は2番目の質問がstackoverflowには少し不合理であることを知っています、これは私にとって少し楽しいプロジェクトですので、コードスニペットを投げるのではなく、ちょうど正しい方向に私を少し動かした場合、2番目の質問を好むでしょう。または、可能かどうかを教えてくれました。

55
mkly

GitHubリポジトリからwgetを抜けてtarファイルを取得できます( archive ):

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、完全なアーカイブを取得します。
あなたが言及した質問 で説明されている命名規則に従ってディレクトリを作成します。

download service "Nodeload" のおかげで、GitHubからアーカイブを取得するためにgitバイナリは必要ありません。


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 
96
VonC

構文について説明します ドキュメント内

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

次のURLの例は、 hadley/devtools リポジトリ内のmasterのZipアーカイブを( 2リダイレクト を介して)ポイントします。

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

archive_formatの他のオプションはtarballです。)

このAPIがいつ利用可能になるかはわかりません。

23
krlmlr