
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
。