如何使用JGit通过OAuth访问令牌将更改推送到远程

use*_*356 2 java jgit

我可以用这段代码推送到远程

return git.push().setCredentialsProvider(new UsernamePasswordCredentialsProvider(user, password)).setRemote("origin").call();
Run Code Online (Sandbox Code Playgroud)

我还能够获得具有所有必要范围的oauth访问令牌.如何推送访问令牌?

Rüd*_*ann 6

您需要UsernamePasswordCredentialsProvider使用令牌作为其用户名传递.

String remoteUrl = "https://${token}@github.com/user/repo.git";
CredentialsProvider credentialsProvider = new UsernamePasswordCredentialsProvider( "${token}", "" );
git.push().setRemote( remoteUrl ).setCredentialsProvider( credentialsProvider ).call();
Run Code Online (Sandbox Code Playgroud)

以上内容至少可用于通过GitHub存储库进行身份验证.虽然,我不能说这个方案是否有效.

  • 这种方法不适用于 bitbucket。关于如何使用令牌连接到 bitbucket 有什么想法吗? (3认同)
  • 事实证明,将令牌包含在凭证提供程序中就足够了.无需重新格式化存储库URL.但无论如何它是有效的. (2认同)