ここに、Zip/tarball文字列の作成方法に関する良いリンクがありました
GitHubからZipをダウンロードするとき、ファイル名の最後の16進文字列は何を表しますか?
しかし、私はGitHub APIv3を見ており、何かが足りない場合は興味がありました。
API呼び出しを介してZip/tarballリンクを取得する方法はありますか?
そうでない場合、gitバイナリまたはライブラリを使用せずにその文字列を構築する方法はありますか?つまり、さまざまなAPI呼び出しを使用して、必要なデータを引き出し、必要なURLにアセンブルできますか?
私は2番目の質問がstackoverflowには少し不合理であることを知っています、これは私にとって少し楽しいプロジェクトですので、コードスニペットを投げるのではなく、ちょうど正しい方向に私を少し動かした場合、2番目の質問を好むでしょう。または、可能かどうかを教えてくれました。
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バイナリは必要ありません。
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の例は、 hadley/devtools リポジトリ内のmaster
のZipアーカイブを( 2リダイレクト を介して)ポイントします。
https://api.github.com/repos/hadley/devtools/zipball/master
(archive_format
の他のオプションはtarball
です。)
このAPIがいつ利用可能になるかはわかりません。