回答:
私はこれが古いことを知っていますが、これはあなたがそれを行う方法です:
git clone https://oauth2:ACCESS_TOKEN@somegitlab.com/vendor/package.git
api
トークンを作成する必要があります。A read_user
は以下のリポジトリのみを読み取ることができます/users
ssh
ですか?
あなたはこのようにそれを行うことができます:
git clone https://gitlab-ci-token:<private token>@git.example.com/myuser/myrepo.git
gitlabにはたくさんのトークンがあります:
私はGitLab Community Edition 10.1.2を使用してパーソナルアクセストークンのみをテストしました。例:
git clone https://gitlab-ci-token:${Personal Access Tokens}@gitlab.com/username/myrepo.git
git clone https://oauth2:${Personal Access Tokens}@gitlab.com/username/myrepo.git
またはユーザー名とパスワードを使用:
git clone https://${username}:${password}@gitlab.com/username/myrepo.git
またはパスワードを入力してください:
git clone https://${username}@gitlab.com/username/myrepo.git
しかし、プライベートトークンは機能しないようです。
パスワードの代わりにトークンを使用します(トークンには、クローンを許可するための「api」スコープが必要です)。
git clone https://username:token@gitlab.com/user/repo.git
11.0.0-eeに対してテスト済み。
GitLabリポジトリのCI / CDパイプラインにランナートークンを使用できます。
git clone https://gitlab-ci-token:<runners token>@git.example.com/myuser/myrepo.git
どこ<runners token>
から入手できます:
git.example.com/myuser/myrepo/pipelines/settings
またはをクリックしてSettings icon -> CI/CD Pipeline
、ページでランナートークンを探します
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...
すでにリポジトリがあり、認証をMFAに行う方法を変更しただけの場合remote origin
、次のようにHTTP URIを変更して新しいAPIトークンを使用できます。
git remote set-url origin https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
また、リポジトリを再クローンする必要はまったくありません。
git clone https://oauth2:TOKEN@ANY_GIT_PROVIDER_DOMAIN/YOUR_PROJECT/YOUR_REPO.git
また私のために働いた、ありがとう!! 私は私の正しい解決策でこのスレッドに答えます。
考えられる1つの方法は、デプロイトークンを使用することです(https://docs.gitlab.com/ee/user/project/deploy_tokens)。トークンを作成したら、次を使用します。
git clone https://<username>:<deploy_token>@gitlab.example.com/tanuki/awesome_project.git
上記のリンクで述べたように。
の時点で8.12
、ここでHTTPS
言及されているように、+ランナートークンを使用したクローン作成はサポートされなくなりました。
8.12では、ビルド権限を改善しました。ランナートークンを使用してプロジェクトのクローンを作成できるため、これ以降はサポートされません(実際には偶然に機能しており、完全な機能ではなかったため、8.12で変更しました)。代わりにビルドトークンを使用する必要があります。
これは広くここに文書化されています-https://docs.gitlab.com/ce/user/project/new_ci_build_permissions_model.html。
GitLab CIパイプラインの内部では、CI_JOB_TOKEN
環境変数が機能します。
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/...
出典:Gitlab Docs
ところで、この変数を設定.gitlab-ci.yml
すると、エラーのデバッグに役立ちます。
variables:
CI_DEBUG_TRACE: "true"
私を幸せに自分の将来を作成するには:RTFMは -すべてでgitlab-CI-トークンを使用しますが、していない.netrc
ファイル。
重要な点がいくつかあります。
echo -e "machine gitlab.com\nlogin gitlab-ci-token\npassword ${CI_JOB_TOKEN}" > ~/.netrc
$CI_JOB_TOKEN
内のを置き換えません!https://gitlab.com/whatever/foobar.com
-ではないssh://git@foobar
、ないgit+ssh://
、ありませんgit+https://
。また、URLにCI-TOKENの要素は必要ありません。git clone [url from step 4]
背景:わかった
fatal: could not read Username for 'https://gitlab.mycompany.com': No such device or address
Ansible + Gitlab + Dockerを想像どおりに動作させようとしたとき。今では動作します。
上記の多くの答えは近いですがusername
、deploy
トークンの〜構文が正しくありません。他の種類のトークンもありますが、これdeploy token
はgitlabが(少なくとも2020年頃以降)リポジトリごとに提供するもので、読み取り専用を含むカスタマイズされたアクセスを許可します。
repository
(またはgroup
)から、settings
-> repository
->を見つけますdeploy tokens
。新しいものを作成します。A username
とtoken
フィールドが作成されます。username
デフォルトでは、固定値ではありません。これはこのトークンに固有です。
git clone https://<your_deploy_token_username>:<the_token>@gitlab.com/your/repo/path.git
gitlab.comパブリック、無料アカウントでテスト済み。
git clone https://<token-name>:<token>@gitlaburl