1. ホーム
  2. git

[解決済み] Github プライベートリポジトリの Jenkins CI を認証する。

2022-06-03 12:21:18

質問

私はJenkinsがGithubでホストされている私のプライベートリポジトリから自動的にデータをフェッチすることを望んでいます。 しかし、私はそのタスクを達成する方法がわからない...。ドキュメントを試し、jenkins ユーザーの ssh-key を生成し、私が見ることができるものはすべて: "unable to clone the repo"です。私はURLをチェックしました - 彼らは有効です。

何か手がかりがあれば、この種のものを説明しているいくつかのドキュメント/ブログ/何かを知っていますか?

どのように解決するのですか?

おそらく、GitHub のサポートする ディプロイメント・キー のサポートは、あなたが探しているものでしょうか? そのページを引用します。

デプロイキーはいつ使うべきですか?

単純に、単一のプライベートリポジトリへのプルアクセスを必要とするサーバーがあるときです。このキーは、個人のユーザーアカウントにではなく、リポジトリに直接添付されます。

すでに試していることで、うまくいかない場合は、使用している URL、キー ファイルの名前と場所など、より詳細に質問を更新するとよいでしょう。


さて、次は技術的な部分です。JenkinsでSSHキーを使用するには?

もし、あなたが、例えば jenkins unix ユーザであれば、デプロイキーを ~/.ssh/id_rsa . Jenkinsがssh経由でレポをクローンしようとするとき、そのキーを使おうとします。

いくつかのセットアップでは、自分のユーザーアカウントでJenkinsを実行することができず、またデフォルトのsshキーの場所も使用できない可能性があります。 ~/.ssh/id_rsa . このような場合、別の場所に鍵を作成することができます。 ~/.ssh/deploy_key というように設定します。 ssh のエントリでそれを使用するように ~/.ssh/config :

Host github-deploy-myproject
    HostName       github.com
    User           git
    IdentityFile   ~/.ssh/deploy_key
    IdentitiesOnly yes

なぜなら、すべてのGithubリポジトリへの認証は [email protected] を使用しており、上記のキーが Github へのすべての接続に使用されることを望まないため、ホストエイリアスを作成しました。 github-deploy-myproject . クローンURLは次のようになります。

git clone github-deploy-myproject:myuser/myproject

として置いたもので、これも リポジトリURL としてJenkinsに入力します。

(注意点として ではなく を置く ssh:// を前に置くと動作します)。