使用JGit的PullCommand进行身份验证

豪克

我正在使用JGit,并希望从远程存储库中提取到我的本地存储库中。

第一个方法是克隆存储库,并且运行良好:

CredentialsProvider cp = new UsernamePasswordCredentialsProvider(username, password);
try (Git result = Git.cloneRepository()
    .setURI("http://172.20.1.2/team/myrepo.git")
    .setDirectory(new File("c:\\temp\\gittest"))
    .setCredentialsProvider(cp)
    .call()) {
        System.out.println("Having repository: " + result.getRepository().getDirectory());
    }

但是在第二次调用之后,不需要再次克隆存储库。所以我以为我需要拉

Git git = Git.open(new File("c:\\temp\\gittest"));
git.pull().call();

但是我收到以下错误:

org.eclipse.jgit.api.errors.TransportException: http://172.20.1.2/team/myrepo.git: Authentication is required but no CredentialsProvider has been registered

我不知道在哪里可以将pull命令传递给凭据。

鲁迪格·赫尔曼

您可以使用与相同的方式将传递CredentialsProviderPushCommandCloneCommand

例如:

CredentialsProvider cp = new UsernamePasswordCredentialsProvider(username, password);
git.pull().setCredentialsProvider(cp).call();

连接到远程存储库的所有命令都具有一个公共基类:TransportCommand此类提供了指定身份验证提供程序的方法。

要了解有关使用JGit进行身份验证的更多信息,您可能还想看看我前一段时间写JGit Authentication Explained文章。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 C# 上使用 SSH 进行 NGit(JGit 端口)身份验证

来自分类Dev

使用AES进行DESFire身份验证

来自分类Dev

使用Glass进行身份验证

来自分类Dev

使用cURL进行设备身份验证

来自分类Dev

使用REST进行远程身份验证

来自分类Dev

使用Play进行身份验证!2.4

来自分类Dev

使用JWT进行身份验证

来自分类Dev

使用Wordpress进行.htaccess身份验证

来自分类Dev

使用gundb进行JWT身份验证

来自分类Dev

使用Firebase进行Shopify身份验证?

来自分类Dev

匿名使用Firebase进行身份验证

来自分类Dev

使用docker进行PyMongo身份验证

来自分类Dev

无法使用git进行身份验证

来自分类Dev

使用ldapbind进行身份验证

来自分类Dev

如何使用HttpURLconnection进行身份验证

来自分类Dev

使用硒进行身份验证(Python)

来自分类Dev

使用REST进行远程身份验证

来自分类Dev

使用部分密码进行身份验证

来自分类Dev

仅使用Pamusb进行身份验证

来自分类Dev

使用PHP进行LDAP身份验证

来自分类Dev

使用AngularJS工厂进行身份验证

来自分类Dev

使用私钥进行身份验证

来自分类Dev

使用 R 进行 Twitter 身份验证

来自分类Dev

使用 Facebook 进行 Firebase 身份验证

来自分类Dev

使用 PhantomJS 进行代理身份验证

来自分类Dev

使用 Bcrypt 进行用户身份验证

来自分类Dev

使用 Django 进行 LDAP 身份验证

来自分类Dev

使用 Laravel 进行身份验证

来自分类Dev

使用Scrapy进行NTLM身份验证以进行网络抓取