现在大约1周后,Bitbucket没有(?)向我的Jenkins服务器发送请求。
我把这一切都设置得像这样:
Endpoint
http://username:apitoken@jenkinshost/
username
=詹金斯的用户名
apitoken
= apitoken连接到Jenkins的用户名
jenkinshost
=我运行Jenkins的主机
Project name
是一个项目
Token
:我可以在每个项目配置中设置的令牌。
我是根据这个网站完成的:http://felixleong.com/blog/2012/02/hooking-bitbucket-up-with-jenkins
。
它确实有效,但现在已经不复存在了。 Bitbucket改变了什么吗?我该如何解决这个问题?
答案 0 :(得分:31)
为了在新提交后构建您的回购,请使用BitBucket Plugin。
有一点需要注意: 在创建POST Hook时(注意它是POST钩子,而不是Jenkins钩子),URL在最后有一个“/”时工作。像:强>
URL: JENKINS_URL/bitbucket-hook/
e.g. someAddress:8080/bitbucket-hook/
不要忘记在作业配置中选中“在将更改推送到BitBucket时构建”。
答案 1 :(得分:18)
我有类似的问题,直到我开始工作。以下是整合的完整列表:
ssh-keygen -t rsa
复制公钥(〜/ .ssh / id_rsa.pub)并将其粘贴到用户帐户管理控制台中的Bitbucket SSH密钥中:
使用私钥凭据将私钥(〜/ .ssh / id_rsa)复制到新用户(甚至现有用户),在这种情况下,用户名不会产生影响,因此用户名可以是任何内容:
运行此命令以测试您是否可以访问Bitbucket帐户:
ssh -T git@bitbucket.org
git clone git@bitbucket.org:username/repo_name.git
现在您可以为Jenkins推送通知和自动构建启用Bitbucket挂钩,您将分两步完成:
在您配置的作业/项目中添加身份验证令牌,它可以是任何内容:
在Bitbucket钩子中:选择jenkins钩子,并填写如下字段:
其中:
**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.
答案 2 :(得分:14)
我只是能够使用BitBucket中的Hooks选项成功触发构建,并使用以下步骤(类似于链接)对Jenkins实例执行:
尽管使用了身份验证,端点也不需要在URL中插入基本的HTTP身份验证,我没有使用模块名称字段,并且项目名称输入区分大小写,包括我的测试用例中的空格。构建并不总是立即触发,而是相对较快。您可以考虑的另一件事是禁用“配置全局安全性”中的“防止跨站点请求伪造攻击”选项进行测试,因为我在启用此选项时遇到了来自现有集成的各种API难题。
答案 3 :(得分:4)
通过迭代,我了解到令牌字段和端点中的令牌可以是相同的。所以我将它们设置为与用户令牌相同,它可以工作!还要检查用户是否有权创作工作。
无论如何,您可以查看 access.log ,看看BitBucket是否尝试过。
P.S。也是指向Bitbucket Documentation的链接。有一天它会变得更有用。
答案 4 :(得分:1)
我不熟悉这个插件,但是我们非常成功地将BitBucket和Jenkins一起使用,但是我们轮询更改而不是从BitBucket推送它们(因为我们的构建服务器隐藏在公司防火墙后面)。如果您仍然遇到当前方法的问题,这种方法可能对您有用。
Setting up SSH for Git & Mercurial on Linux上的此文档介绍了如何通过SSH在构建服务器和BitBucket之间进行通信所需执行的操作。完成此操作后,安装Git Plugin,转到构建配置并在源代码管理下选择“Git”,然后输入存储库的ssh URL作为存储库URL。最后,在Build Triggers部分中,选择Poll SCM并将轮询频率设置为您需要的任何值。
答案 5 :(得分:1)
我遇到了这个问题,原来问题是我用CamelCase命名了我的存储库。 bitbucket会自动将存储库的URL更改为小写,然后将其发送到webhook中的Jenkins。然后Jenkins搜索具有匹配存储库的项目。如果您和我一样,在项目配置中的存储库URL中有CamelCase,您将能够检出代码,但webhook请求上的模式匹配将失败。
只需将您的repo URL更改为小写而不是CamelCase,模式匹配应该找到您的项目。