Hudson / Jenkins - 如何在BitBucket.com上访问私有git存储库

时间:2013-10-23 19:22:19

标签: git ssh jenkins hudson bitbucket

这个问题是漫长而多面的,所以我先从一个问题开始 简要概述,然后详细显示我尝试过的所有内容和我的内容 关于他们为什么不工作以及我做错了什么的问题。

概述

我正在尝试在Hudson上设置构建作业以获取私有源代码 BitBucket上的存储库。 Stack上有很多类似的问题 溢出,但由于各种原因,它们都没有满足我的需求。

我想使用https而不是ssh访问它,但那里 似乎无法通过https和所有人在Hudson中访问它 在网上似乎在ssh上出售。所以我试图让它成功 ssh,但是徒劳无功。

所以,我的核心问题是:
我如何访问私人 Hudson中的BitBucket存储库?

备注

  • 我意识到詹金斯更好,但我正在努力 已建立的Hudson服务器。请不要转向的建议 詹金斯。我在标题和标签中加入了詹金斯,因为更有可能任何解决方案都适用于两者。
  • 由于遇到了几个死胡同,我还问了几个“子问题”,详细阐述了上面的核心问题 - 如果你可以启发我,请多加感激。

问题

我使用Hudson的Git插件,并按如下方式配置:

Git Configuration

由于这是一个私有存储库,因此需要以某种方式进行身份验证。当然,构建失败了。以下是堆栈跟踪的相关部分:

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:

Git Config with ssh 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插件,发布SSH插件和SSH插件(我了解 here )来配置Hudson。 / p>

但我无法弄清楚如何使用它们。首先,我假设我不需要发布SSH插件,因为我不想发布,我只是想拉。其次,SSH插件对我不起作用。我试过这样做:

SSH Sites Config

但这里的问题是它无法连接。此外,它需要一个端口号,如果我什么都没输入,则使用22作为默认值。我不知道该怎么办。

问题: 我是否甚至需要配置SSH站点才能从此私有BitBucket存储库成功发布?

摘要

我如何访问私人 Hudson中的BitBucket存储库?

在我的Hudson构建中,我需要能够从这个私有BitBucket存储库中提取。我似乎无法使用ssh,我甚至不知道是否可以使用https,因为我没有地方输入密码。如果有人可以帮助我,我会很高兴。

1 个答案:

答案 0 :(得分:2)

对于HTTPS连接,您应该在HTTPS查询中定义密码,例如:

https://TJamesBoone:**PASSWORD**@bitbucket.org/OtherUser/projectname.git

对于SSH连接,如上所述,您应该看到DOC:https://confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Git 不要忘记设置EMPTY密码,因为jenkins不支持它。 不要忘记首先使用jenkins用户登录git使用 ssh git@bitbucket.org

由于我没有在Windows上运行,我无法提供更多有关SSH案例的信息。

如果不起作用,请告诉我们: * jenkins作为服务运行 *如果没有,用于运行jenkins的网络服务器是什么