Gitlab 不允许使用JGIT的git上载包

Gitlab 不允许使用JGIT的git上载包,gitlab,jgit,Gitlab,Jgit,我在这里的意图是使用“个人访问令牌”,以便能够在java应用程序中从这个repo(GitLab)克隆/拉取。我就是想不出如何避开这个错误 这是我的密码 String accessToken = conf.getString("accessToken"); String uri = "https://gitlab-ci-token:" + accessToken + "@gitlab.com/dfurrer/cosmotronsBinaries.git"; Creden

我在这里的意图是使用“个人访问令牌”,以便能够在java应用程序中从这个repo(GitLab)克隆/拉取。我就是想不出如何避开这个错误

这是我的密码

    String accessToken = conf.getString("accessToken");

    String uri = "https://gitlab-ci-token:" + accessToken + "@gitlab.com/dfurrer/cosmotronsBinaries.git";

    CredentialsProvider cp = new UsernamePasswordCredentialsProvider("PRIVATE-TOKEN", accessToken);
    git = Git.cloneRepository()
                    .setURI(uri)
                    .setCredentialsProvider(cp)
                    .setRemote("origin")
                    .setBranch("master")
                    .call();
我得到了他的例外:

org.eclipse.jgit.api.errors.TransportException: https://gitlab-ci-token@gitlab.com/dfurrer/cosmotronsBinaries.git: git-upload-pack not permitted on 'https://gitlab-ci-token@gitlab.com/dfurrer/cosmotronsBinaries.git/'

我解决了这个问题。我正在创建一个只有read_用户和read_注册表的个人访问密钥。一旦我创建了具有api权限的令牌,我就可以进行克隆。

Jgit
:使用
UsernamePasswordCredentialsProvider
对令牌进行身份验证,username参数可以是
token
,或者使用存储库url中的所有者名称,或者是空的,password参数的值是您的令牌值,这三种风格在我看来都很好:

new UsernamePasswordCredentialsProvider("token","Personal Access Token")); 

new UsernamePasswordCredentialsProvider("the owner name of the repository","Personal Access Token")); 

new UsernamePasswordCredentialsProvider("","Personal Access Token"));

在Git配置中,尝试将HTTP客户端更改为“JDK内置”


参考:

你试过我在这里总结的内容吗?是的,这就是我工作的例子。我使用用户名/密码工作,但现在使用“个人访问令牌”我收到了他的消息。