如何将Bitbucket连接到Jenkins

自从现在大约一周以来,Bitbucket没有(?)向我的Jenkins服务器发送请求。

我已经把它设置成这样:

Endpoint http://username:apitoken@jenkinshost/
username =jenkins的username
apitoken = apitoken连接到jenkins的用户名
jenkinshost =我的主人,我跑Jenkins

Project name是一个项目
Token :我可以在每个项目configuration中设置的令牌。

我已经根据这个网站做了这个: http://felixleong.com/blog/2012/02/hooking-bitbucket-up-with-jenkins : http://felixleong.com/blog/2012/02/hooking-bitbucket-up-with-jenkins
它确实有效,但现在不行了。 Bitbucket改变了什么? 我怎样才能解决这个问题?

在这里输入图像说明

为了在新的提交后build立你的仓库,使用BitBucket插件 。

只有一件事要注意:当创build一个POST Hook(注意它是POST钩子,而不是Jenkins钩子)时,当最后有一个“/”时,该URL起作用。 喜欢:

 URL: JENKINS_URL/bitbucket-hook/ eg someAddress:8080/bitbucket-hook/ 

不要忘记在作业configuration中检查“更改推送到BitBucket时的构build”。

我有类似的问题,直到我得到它的工作。 以下是整合的完整列表:

  1. 生成公钥/私钥对: ssh-keygen -t rsa
  2. 复制公钥(〜/ .ssh / id_rsa.pub)并将其粘贴到用户的帐户pipe理控制台中的Bitbucket SSH密钥中: 在这里输入图像说明

  3. 将私钥(〜/ .ssh / id_rsa)复制到新的用户(甚至现有的私钥),在这种情况下,用户名不会有所作为,所以用户名可以是任何东西: 在这里输入图像说明

  4. 运行这个命令来testing你是否可以访问Bitbucket帐户: ssh -T git@bitbucket.org

  5. 可选的:现在,你可以使用你的git来复制仓库没有passwjord git clone git@bitbucket.org:username/repo_name.git
  6. 现在您可以启用Jenkins推送通知和自动构build的Bitbucket挂钩,您将分两步完成:

    1. 在您configuration的作业/项目中添加一个authentication令牌,可以是任何东西: 在这里输入图像说明

    2. 在Bitbucket钩子中:selectjenkins钩子,并填写如下字段: 在这里输入图像说明

哪里:

 **End point**: username:usertoken@jenkins_domain_or_ip **Project name**: is the name of job you created on Jenkins **Token**: Is the authorization token you added in the above steps in your Jenkins' job/project Recommendation: I usually add the usertoken as the authorization Token (in both Jenkins Auth Token job configuration and Bitbucket hooks), making them one variable to ease things on myself. 

我只是能够使用BitBucket中的Hooks选项成功触发构build到Jenkins实例,具有以下步骤(类似于链接):

  1. 生成一个自定义的UUID或string序列,稍后保存
  2. Jenkins – >configuration项目 – >构build触发器 – >“触发器远程构build(例如,从脚本)”
  3. (粘贴UUID /string在这里)为“身份validation令牌”
  4. 保存
  5. 编辑bitbucket存储库设置
  6. 钩子 – >编辑:端点: http ://jenkins.something.co: 9009/模块名称:项目名称:项目名称标记:(粘贴UUID /string在这里)

尽pipe使用了身份validation,端点不需要在URL中插入基本的HTTP身份validation,但是我没有使用“模块名称”字段,并且在我的testing用例中input了项目名称(区分大小写)。 构build并不总是立即触发,但相对较快。 您可能考虑的另一件事是禁用“configuration全局安全性”中的“防止跨站点请求伪造攻击”选项进行testing,因为在启用此选项时,我经历了现有集成的各种API困难。

通过迭代,我了解到令牌字段和端点中的令牌可以相同。 所以我将它们设置为与用户令牌相同,它的工作原理! 同时检查用户是否有权进行工作。

无论如何,你可以检查access.log ,看看BitBucket是否尝试。

詹金斯

PS也是一个链接到Bitbucket文档 。 可能有一天它会变得更有用。

我对这个插件并不熟悉,但是我们很成功地使用了BitBucket和Jenkins,但是我们调查了一下变化,而不是把它们从BitBucket中推出(因为我们的构build服务器隐藏在公司的防火墙后面)。 如果您目前的方法仍然存在问题,则此方法可能适用于您。

这篇关于在Linux上为Git&Mercurial设置SSH的文档涵盖了在构build服务器和通过SSH的BitBucket之间进行通信所需要做的细节。 一旦完成,安装Git Plugin ,进入你的编译configuration,selectSource Code Management下的'Git',然后input你的版本库的ssh URL作为版本库的URL。 最后,在“构build触发器”部分中,select“轮询SCM”并将轮询频率设置为任何您需要的值。

我有这个问题,事实certificate,这个问题是我用CamelCase命名我的存储库。 bitbucket自动更改您的存储库的URL是全部小写,并发送到webhookjenkins。 Jenkins然后使用匹配的存储库search项目。 如果你像我一样在你的项目configuration中将CamelCase放入你的仓库URL中,你将能够检出代码,但是webhook请求中的模式匹配将会失败。

只需将您的repourl更改为小写字母而不是CamelCase,模式匹配就会find您的项目。