Gitリポジトリのクローン作成を自動化する方法

Gitリポジトリのクローン作成を自動化する方法

VM 上に複数のリポジトリをクローンし、それらでソフトウェアをビルドする必要があります。 非常に優れたビルド スクリプトがありますが、問題が 1 つあります。 ビルドの前に、複数のリポジトリをクローンする必要があり、セキュリティ更新がいくつか行われた後、git サーバーに公開キーを追加できなくなり、サポートされているプロトコルが ssh のみになりました。

クローン作成コマンドは次のようになります。

git clone ssh://[email protected]:YYYY/repoB

しかし、それらはたくさんあり、それぞれにパスワードを渡すのは非常に面倒で時間がかかります。

私がやろうとしているのは、clone コマンドにパスワードを自動的に渡すことです。userA:passwordA@git-ger を追加しようとしていましたが、これは ssh ではなく HTTPS でのみ機能します。自動展開を行うには、ansible などの自動ツールに切り替える必要があることはわかっていますが、ビルド プロセス全体を書き直すのにかなりの時間がかかりました。

私の質問は、サーバー上で何も変更せずに、リポジトリをクローンするためにパスワードを自動的に渡すにはどうすればよいかということです。理想的には、これを bash レベルから実行します。git clone と入力した後、行を読み取ろうとしましたが、うまくいきませんでした。どんな助けでもいただければ幸いです。

答え1

私の考えでは、最善の解決策は、カスタムGIT_ASKPASSヘルパーを使用して、パスワードを別の環境変数として渡すことです。たとえば、git-askpass-helper.sh次のようなファイルを作成します。

#!/bin/sh
exec echo "$GIT_PASSWORD"

git clone https://username@hostname/repo環境変数を指定しGIT_ASKPASS=/path/to/git-askpass-helper.shて実行しますGIT_PASSWORD=nuclearlaunchcodes

関連情報