ソース管理に jgit と gitolite を使用して、コマンドで特定のコードを生成し、ソース管理にコミットしたいアプリケーションがあります。目標は、早送りでプルし、新しいコードをコミットしてからプッシュすることです。
私は次の方法を持っています:
private void commitToGitRepository(String updateComment, Config config)
throws IOException, NoFilepatternException, GitAPIException
{
if(git == null)
{
git = Git.open(new File(config.getDpuCheckoutDir()));
}
PullCommand pull = git.pull();
pull.call();
}
このメソッドは、pull.call()
メソッド呼び出しで失敗しますが、次の例外があります。
com.jcraft.jsch.JSchException: UnknownHostKey: www.somehost.com. RSA key fingerprint is 9d:92:a9:c5:5d:cb:5f:dc:57:ff:38:7e:34:31:fe:75
at com.jcraft.jsch.Session.checkHost(Session.java:748)
at com.jcraft.jsch.Session.connect(Session.java:319)
at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:116)
at org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:121)
at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:248)
at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:147)
at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:136)
at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:122)
at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1104)
at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:128)
at org.eclipse.jgit.api.PullCommand.call(PullCommand.java:245)
at net.intellidata.dpu.controller.schema.EntityMappingController.commitToGitRepository(EntityMappingController.java:149)
... (truncated where it meets my code)
私がこれを読んだ方法では、 で私のknown_hostsファイルが見つからないようですuser_home/.git
。しかし、私は 1 時間検索してきましたが、既知のホスト ファイルを探す場所を JSch に指示するように JGit を構成する方法が見つかりません。
提案?オリジンのエントリが known_hosts ファイルに存在することを知っています