Bitbucket上的POST钩子

i.a*_*iel 12 git github nginx bitbucket githooks

如何在私人Jenkins的bitbucket中使用POST网址?

我一直遇到bitbucket和他们的帖子提交问题.

说明:

http://username:password@myjenkins.instance/job/myproject/build?token=mytoken

我有一个jenkins实例,我想在推送某些存储库时触发.由于jenkins可以从外部(万维网)访问,因此它通过典型的用户/密码系统进行保护.

使用Github时,我可以直接在URL中定义用户名和密码.在检查nginx日志时,很明显github能够转换该URL以登录用户.Bitbucket不是.

以下是一些显示问题的nginx日志.

Bitbucket发布日志:

- - "POST /job/myproject/build?token=mytoken HTTP/1.1" 403 216 "-" "Bitbucket.org"
Run Code Online (Sandbox Code Playgroud)

有趣的是403错误.Acces拒绝了.

Github帖子钩子的相同日志:

- github - "POST /job/myproject/build?token=mytoken HTTP/1.1" 302 0 "-" "-"
Run Code Online (Sandbox Code Playgroud)

如日志所示,github是我创建的用户的名称,具有启动构建的良好权限.

我可以做些什么来启用post hook?

ger*_*nio 11

如果你想在你的repo中提交后使BitBucket触发Jenkins作业执行,你有两个选择:

  • 使用POST挂钩
  • 使用Jenkins钩子

两者都使用Jenkins API来触发作业.

对于POST钩子,您基本上需要构建URL,如下所示:

https://USER:APITOKEN@JENKINS_URL/job/JOBNAME/build?token=TOKEN
Run Code Online (Sandbox Code Playgroud)

哪里:

  • USER:是将触发作业的Jenkins用户
  • APITOKEN:是与该用户关联以允许使用API​​的令牌,您可以从Jenkins的用户配置页面获取它
  • JENKINS_URL:你的詹金斯服务器的网址
  • JOBNAME:作业的名称
  • TOKEN:与作业关联的令牌,您必须将其添加到作业配置页面中(启用远程触发器)

关于这个很酷的事情是你可以检查它是否只能使用控制台中的curl.

另请注意,网址中没有密码,您可以使用API​​ TOKEN,这是为了避免发布您的用户和密码.如果您在Jenkins服务器中拥有管理员权限,那么您可以采取其他措施来提高安全性,创建一个只具有读取和构建作业的访问权限的新用户,并仅将其用于此目的.因此,您不必发布自己的用户和令牌,这些用户和令牌可能具有管理员权限.

Jenkins钩子以相同的方式工作,为您构建相同的URL,但您没有机会测试它(例如,使用curl).

这是基于这些文件:

希望能帮助到你.

GER

  • 请注意,USER需要整体:读取和作业:此通话最少的构建和读取权限. (2认同)

cfo*_*ish 2

这并没有真正回答你的问题,而是建议另一种方法。bitbucket.org 和 github.com 都支持 ssh 密钥。

请参阅“为 Git 设置 SSH

设置 ssh-agent(在该页面中进行了说明)非常重要,因为如果没有此设置,您将被要求输入密码短语而不是用户名和密码。