web-dev-qa-db-ja.com

ローカルマシンの「git」にアクセスできないプライベートリポジトリをGitHubからダウンロードするにはどうすればよいですか?

私がしたいことは、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

ここで承認は通過しますが、ファイルを抽出できません。

どうやってするか?

9
Kamil Lelonek

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>)。
4
tjanez

独自の「パーソナルアクセストークン」がある場合、curlコマンドを使用して、リポジトリのブランチのアーカイブをダウンロードできます。

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

ProjectIDは、リポジトリのメインページに表示されます。

SHAの値は、プルダウンから目的のブランチを選択し、SHAの右側の値をコピーした後、webUIから取得できます。以下のスクリーンショットを参照してください。

enter image description here

これを行うもう1つの方法は、次のようなwgetを使用することです。

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

お役に立てば幸いです。

0
frakman1