APIからは、httpリポジトリのクローン作成に使用できるトークンを取得する方法が不明です。
ここのドキュメントから:
http://doc.gitlab.com/ee/ci/api/README.html
このURLを取得できるはずです:
http://gitlab.com/ci/api/v1/projects?private_token=QVy1PB7sTxfy4pqfZM1U&url=http://demo.gitlab.com/
url
パラメータがどこから取得されるのかわかりませんが、プライベートトークンだけでも404エラーページを受け取ります。
ci
サブドメインを試しましたが、gitlab.comにリダイレクトされます。
とはいえ、それが必要な理由についてもう少し説明します。複数のプロジェクトを持つ可能性のあるサーバーがあります。各プロジェクトには、プライベート/パブリックのリポジトリのリストが含まれ、各プロジェクトは定期的に複製/プルされる必要があります。 githubとは異なり、gitlabはサイト全体のoauth2トークンを提供せず、代わりに各プロジェクトにCIトークンを提供します。ユーザーがプロジェクトごとにトークンを入力することを確認できますが、プライベートトークンを入力するよりもはるかに複雑です。
一方、ユーザーごとにSSHキーを生成し、公開キーをアカウントに追加することで、httpの代わりにsshを使用してフェッチ/クローンを作成することができます。しかし、それは単にトークンを取得して基本的な認証URLで複製するよりも、私の側では少し多くの作業です
git clone https://gitlab-ci-token:[email protected]/project.git
トークンを取得するためのURLは、次のパス/ profile/accountの下にあります。
または、単にプロファイル設定-> アカウントに移動できます
また、APIの正しいバージョンを使用していることを確認してください。この応答の時点で現在v3/api/v3/projects?private_token = {my_private_token}にあります
新しい Gitlab CI Build Permissions Model によると、HTTPSはすべてのソースを複製するための要件になりました。そのため、SSHオプションは除外されます。
プライベートリポジトリのクローンを作成するには、次のようにします。
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/<group_name>/<repo>.git
また、[〜#〜]しない[〜#〜]は、CI_JOB_TOKENの値を指定する必要があります。自動的に取得されます。したがって、<group_name>
と<repo>
を入力するだけです。
また、gitlab.com
はgitlab.xyz.cloud
(プライベートなgitlabエンタープライズ)に置き換えることができますが、これは引き続き機能します。
CI_JOB_TOKEN
の値が実際に必要になることはありません。
私はあなたが望むトークンのタイプをチェックすると言うでしょう。
プライベートトークン? [プロファイル設定]-> [アカウント]に移動します。
新しいCI/CDパイプラインをトリガーする場合、トークンを生成できます。これは、プロジェクト設定-> CI/CDパイプライン->トークンを作成することで実行できます。
また、Gitに対する適切な権限を持っていることも重要です。
Gitlab.comから次の手順でトークンを見つけることができます
これを見つけるのに10分かかりました...どこにも文書化されていません。