そうです、それはかなり一般的な使用例です。 Gitlabはこれを達成するためにDeploy Keys
と呼ばれるものを使用します(詳細はhere)。
私は同様の質問hereに答えました。
以下は、特定のニーズに合わせたその回答のバージョンです。
最初にSSH鍵ペアを生成します。これにはssh-keygen -t rsa
を使用できます。
次に、Repo Bのgitlabページに移動し、Deploy Keys
の設定を探します。ここでは、生成したばかりの公開鍵を貼り付ける必要があります。
次にRepoに移動します。Variables
ページを探します。たとえば、名前がSSH_PRIVATE_KEY
の新しいプライベート変数を作成し、そこに生成した秘密鍵を貼り付けます。その中には、レポB.を引くことができるように
- 'which ssh-agent || (apt-get update -y && apt-get install openssh-client -y)'
# Run ssh-agent (inside the build environment)
- eval $(ssh-agent -s)
# Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
あなたのレポA CI環境は今セットアップする必要があります:あなたの秘密鍵は、あなたのCI環境に使用できるように
最後に、あなたの.gitlab-ci.yml
ファイルに次を追加します
私は 'deploy keys'については気づいていなかったと思います。 –
これは、いくつかの(依存している)従属プロジェクトを処理する場合には非常に便利な機能です;) – Jawad