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

How to use JGit to push changes to remote with OAuth access token

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

return git.push().setCredentialsProvider(new UsernamePasswordCredentialsProvider(user, password)).setRemote("origin").call();

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

您需要传递一个 UsernamePasswordCredentialsProvider 并将令牌作为其用户名。

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

以上至少可以用于对 GitHub 存储库进行身份验证。不过,我不能说这个方案是否普遍有效。