Jenkins无法连接到存储库:命令返回状态码128:

时间:2016-09-21 14:35:05

标签: windows git jenkins jenkins-plugins aws-codecommit

好的,所以我花了数年时间试图设置这个jenkins服务器并且到处都有错误。 大多数答案都是针对linux的,这个jenkins服务器是在windows上(如果你知道如何在linux jenkins上设置msbuild我的耳朵)。

服务器设置完全正确,我正在做的最后一个超级基本的事情是尝试从aws codecommit中提取repo,我有正确的角色和凭证。

我收到此消息

Jenkins Failed to connect to repository :
"git.exe ls-remote -h https://repo-url HEAD" Command  returned status code 128:

接着说

stderr: fatal: unable to access 'https://repo-url': The requested URL returned error: 403

然而,将相同的命令复制到cmd窗口并且它工作得很好。

有一个名为codecommit-url-helper的插件,它也经过安装和尝试,所做的一切都是为了我的希望和梦想而大肆蹲下。

如果您的解决方案涉及jenkins cli,请知道我也尝试过,但是:

C:\Users\Administrator\Downloads> java -jar jenkins-cli.jar -s http://localhost:8080/ help
Sep 21, 2016 2:14:33 PM hudson.remoting.SynchronousCommandTransport$ReaderThread run
SEVERE: I/O error in channel Chunked connection to http://localhost:8080/cli

[UPDATE]

对于那些想知道我最终做两件事的人,使用git config --system配置带角色的凭证,然后我在jenkins系统设置中添加了全局用户名和电子邮件,在“Git插件”下,其中一个做了它

3 个答案:

答案 0 :(得分:1)

另一种选择是利用IAM用户及其Codecommit https凭证。

因此,您可以将这些凭据添加到Jenkins。在Jenkins工作中,您可以将它们设置为在从该存储库签出时使用。

但请记住,应该控制IAM权限。您可以简单地允许IAM用户拥有对Codecommit的完全访问权限。

您还可以在编写Jenkins管道时使用这些凭据。

希望这有帮助。

答案 1 :(得分:0)

使用SSH密钥是好的。 SSH密钥是一种在不涉及密码的情况下识别可信计算机的方法您可以生成SSH密钥并将公钥添加到您的GitHub帐户。请查看How to Generate SSH in Github了解详情

答案 2 :(得分:0)

RejeeshChandran的答案是解决问题的良好提示。我为完成它而执行的实际步骤:

1)生成新的SSH密钥并使用提供的指令将其添加到ssh-agent here

2)重启Jenkins服务

3)git.exe ls-remote -h https://repo-url HEAD命令现在可以在Jenkins中正常工作