curl
を使用して、GitLabのプライベートリポジトリをダウンロードしたい。 Gitlab APIを使用できることは知っていますが、何らかの理由で機能しません。
これは可能ですか?この方法で実行しようとすると、常にログインページが返されます。
これはisで、次の手順に従ってください。
まず、「パーソナルアクセストークン」を作成する必要があります。
「api認証済みユーザーのAPIにアクセス」を確認します
[個人用アクセストークンの作成]をクリックします
トークンを安全な場所に保存してください。トークンを再度表示することはできません。
「Personal Access Token」を取得したので、APIを使用するにはプロジェクトIDを取得する必要があります。
JsonからプロジェクトのIDを取得します。
今、あなたは呼び出すことができます:
wget -O your_project.tar.gz https://gitlab.com/api/v3/projects/0000000/repository/archive?private_token=XXXXXXXXXXXXXXXXXXXX
そして、それはプロジェクトを.tar.gz
ファイルとしてダウンロードします。
(「プロファイル設定」にある)自分のものであるプライベートトークンを使用して、任意のリソースにアクセスできます。ダウンロードするリポジトリファイルを参照し、「raw」ファイルリンクをコピーして?private_token = ...を追加するだけです。
例:
curl https://git.local/user1/myrepo/raw/master/myfile.txt?private_token=ahgiretherghaeoi
可能ですが、自分自身を認証する必要があります(「 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つのファイルを直接ダウンロードします。
CI実行でこれを行う必要があり、プライベートリポジトリが同じサーバー上にある場合、 git submodules を使用して他のリポジトリを同時にクローンできる必要があります。 ${CI_JOB_TOKEN}
は 別のオプション GitLab 8.12以降です。