web-dev-qa-db-ja.com

GitLabプライベートリポジトリをダウンロードする

curlを使用して、GitLabのプライベートリポジトリをダウンロードしたい。 Gitlab APIを使用できることは知っていますが、何らかの理由で機能しません。

これは可能ですか?この方法で実行しようとすると、常にログインページが返されます。

16
user3785137

これはisで、次の手順に従ってください。

  1. まず、「パーソナルアクセストークン」を作成する必要があります。

    1. [プロファイル]> [設定]> [アクセストークン] に移動します。
    2. 「パーソナルアクセストークン」の名前を入力します。
    3. api認証済みユーザーのAPIにアクセス」を確認します

      Personal Access Tokens

    4. [個人用アクセストークンの作成]をクリックします

    5. ページがリロードされ、新しいトークンが保存されます。
    6. トークンを安全な場所に保存してください。トークンを再度表示することはできません。

      New "Personal Access Token"

  2. 「Personal Access Token」を取得したので、APIを使用するにはプロジェクトIDを取得する必要があります。

    1. https://gitlab.com/api/v3/projects?private_token=XXXXXXXXXXXXXXXXXXXX に移動します(Xを新しいトークンに置き換えます)
    2. JsonからプロジェクトのIDを取得します。

      Project id

  3. 今、あなたは呼び出すことができます:

    wget -O your_project.tar.gz https://gitlab.com/api/v3/projects/0000000/repository/archive?private_token=XXXXXXXXXXXXXXXXXXXX

そして、それはプロジェクトを.tar.gzファイルとしてダウンロードします。

22
pdeschen

(「プロファイル設定」にある)自分のものであるプライベートトークンを使用して、任意のリソースにアクセスできます。ダウンロードするリポジトリファイルを参照し、「raw」ファイルリンクをコピーして?private_token = ...を追加するだけです。

例:

curl https://git.local/user1/myrepo/raw/master/myfile.txt?private_token=ahgiretherghaeoi
9
Michael Wyraz

可能ですが、自分自身を認証する必要があります(「 Gitlab API:プライベートトークンの生成方法 」のように)

curl http://gitlab.server/api/v3/session --data 'login=myUser&password=myPass'

次に、 プライベートトークン を使用します。

curl --header "PRIVATE-TOKEN: QVy1PB7sTxfy4pqfZM1U" "http://example.com/api/v3/projects"

または、あなたの場合、 リポジトリファイル を取得します。

GET /projects/:id/repository/files

または、1つのファイルを直接ダウンロードします。

4
VonC

CI実行でこれを行う必要があり、プライベートリポジトリが同じサーバー上にある場合、 git submodules を使用して他のリポジトリを同時にクローンできる必要があります。 ${CI_JOB_TOKEN}別のオプション GitLab 8.12以降です。

1
Waddles