gpt4 book ai didi

java - 使用 JGit 授权错误推送到 GitLab

转载 作者:行者123 更新时间:2023-11-30 08:32:29 27 4
gpt4 key购买 nike

我可以通过 JGit 从 GitLab 克隆,但是当我推送更改时,我收到了 not authorized 错误消息。

三个更重要的细节:

  1. 我拥有存储库,因此这不是只读访问的问题。

  2. 存储库是私有(private)的,因此我知道 OAuth 2 token 有效并在初始克隆中使用。

  3. 我只有用户名和一个 oauth2 token 。我没有用户密码、SSH key 或个人访问 token 。

这是我的克隆命令:

Git.cloneRepository()
.setURI(target)
.setDirectory(repoFolder)
.setCloneAllBranches(true)
.setCredentialsProvider(new UsernamePasswordCredentialsProvider("oauth2", token))
.call();

这是我的推送命令:

PushCommand push = cloneSource.push();
push.setRemote(target);
push.setPushAll();
push.setCredentialsProvider(new UsernamePasswordCredentialsProvider("oauth2", token));
push.call();

最佳答案

要使用个人访问 token 和 jgit 对 gitlab 进行身份验证,您可以使用以下代码段:

通过下面的代码片段,我能够推送回 GitLab 存储库。

CredentialsProvider credentialsProvider = new 
UsernamePasswordCredentialsProvider( "PRIVATE-TOKEN", <your oauth token> );
git.push()
.setCredentialsProvider( credentialsProvider )
.call();

这适用于 Jgit 版本 (4.8.0.201706111038-r)

关于java - 使用 JGit 授权错误推送到 GitLab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40117738/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com