特定の SSH キーと一緒に GitPython を使用するにはどうすればよいですか?
ドキュメントは、その件に関してあまり完全ではありません。私がこれまでに試したことは、Repo(path)
.
以下はすべて、GitPython v0.3.6 以降でのみ機能することに注意してください。
環境変数を使用して、その場所でGIT_SSH
呼び出す実行可能ファイルを git に提供できます。ssh
そうすれば、git が接続を試みるたびに、あらゆる種類の ssh キーを使用できます。
これは、コンテキストマネージャーを使用して呼び出しごとに機能します...
ssh_executable = os.path.join(rw_dir, 'my_ssh_executable.sh')
with repo.git.custom_environment(GIT_SSH=ssh_executable):
repo.remotes.origin.fetch()
... または、リポジトリのオブジェクトのset_environment(...)
メソッドを使用して、より永続的に:Git
old_env = repo.git.update_environment(GIT_SSH=ssh_executable)
# If needed, restore the old environment later
repo.git.update_environment(**old_env)
任意の量の環境変数を設定できるため、いくつかを使用して ssh スクリプトに情報を渡し、目的の ssh キーを選択できるようにすることができます。
この機能 (GitPython v0.3.6 の新機能) の導入に関する詳細については、それぞれの問題を参照してください。