【发布时间】:2013-11-02 06:06:57
【问题描述】:
这个问题很长而且涉及面很广,所以我先从一个 简要概述,然后详细展示我尝试过的所有内容以及我的 关于为什么它们不起作用以及我做错了什么的问题。
概述
我正在尝试在 Hudson 上为私人上的源代码设置构建作业 BitBucket 上的存储库。 Stack上有很多类似的问题 溢出,但由于各种原因,它们都不能满足我的需求。
我想使用 https 而不是 ssh 来访问它,但是那里 似乎没有办法在哈德逊使用 https 访问它,每个人 在网络上似乎在 ssh 上出售。所以我试图让它与 ssh,但徒劳无功。
所以,我的中心问题是:
我如何访问私人
哈德逊的 BitBucket 存储库?
注意事项
- 我意识到 Jenkins 更好,但我正在与
已建立的 Hudson 服务器。拜托,没有关于切换到的建议
Jenkins。
我将 Jenkins 包含在标题中并作为标签,因为很可能任何解决方案都适用于两者。 - 由于遇到了几个死胡同,我还问了几个“子问题”,详细说明了上面的核心问题 -- 如果你能启发我的话,特别感谢。
问题
我用的是Hudson的Git插件,配置如下:
由于这是一个私有存储库,它需要以某种方式进行身份验证。所以当然,构建失败了。以下是堆栈跟踪的相关部分:
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException:
Could not clone https://TJamesBoone@bitbucket.org/OtherUser/projectname.git
Caused by: hudson.plugins.git.GitException:
org.eclipse.jgit.api.errors.TransportException:
https://TJamesBoone@bitbucket.org/OtherUser/projectname.git: not authorized
问题: 为什么 Hudson 的 Git 插件在项目配置中没有用于私有存储库身份验证的位置?毕竟,SVN 插件可以处理身份验证。有什么好的理由吗?
我尝试过的事情
我将项目重新配置为使用 ssh url 而不是 https url:
然后我使用来自 Atlassian 的 this tutorial 创建了一个 ssh 密钥。然后我将 ssh 密钥添加到 BitBucket 上的项目中。
我再次尝试构建,得到了这个堆栈跟踪(相关部分):
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException:
Could not clone git@bitbucket.org:OtherUser/projectname.git
Caused by: hudson.plugins.git.GitException:
org.eclipse.jgit.api.errors.TransportException:
git@bitbucket.org:OtherUser/projectname.git:
UnknownHostKey: bitbucket.org. RSA key fingerprint is
97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
然后我想我应该尝试使用两个可用的 ssh 插件配置 Hudson,即 Publish Over SSH 插件和 SSH 插件(我了解了 here)。
但我不知道如何使用它们。首先,我假设我不需要 Publish Over SSH 插件,因为我不想发布,我只是想拉。其次,SSH 插件对我不起作用。我试过这样做:
但这里的问题是它无法连接。此外,它需要一个端口号,如果我什么都不输入,则默认使用 22。我不知道该怎么处理它。
问题: 我什至需要配置一个 SSH 站点才能从这个私有 BitBucket 存储库中成功放入吗?
总结
如何访问私人 哈德逊的 BitBucket 存储库?
在我的 Hudson 构建中,我需要能够从这个私有 BitBucket 存储库中提取数据。我似乎无法让它与 ssh 一起使用,我什至不知道是否可以使用 https,因为我没有地方输入密码。如果有人可以帮助我,我会很高兴。
【问题讨论】:
-
不好,我没有“.ssh”文件夹,正如该问题的答案所假设的那样。密钥当前位于 D:/Hudson/SSH。我应该在哪里获得 .ssh 文件夹?
-
您应该在 Jenkins 用户的配置文件中添加一个 .ssh 文件夹。
-
此 Hudson 服务器当前没有身份验证 - 因此没有用户可以使用。
-
我假设您的 hudson 作为服务运行。在哪个帐户下运行此服务?
标签: git ssh jenkins hudson bitbucket