【问题标题】:Bitbucket server webhook to jenkins not posting after upgrade from stash从存储升级后,Bitbucket 服务器 webhook 到 jenkins 没有发布
【发布时间】:2016-05-27 21:15:44
【问题描述】:

我们最近从 Atlassian Stash 2.x 升级到了 Atlassian Bitbucket Server 4.6.1。许多 post-commit 钩子根本不再起作用,因为它们的插件尚未更新,但是其中一个,Bitbucket Server Webhook for Jenkins 在提交后没有触发。当我在其配置窗口中点击“Trigger Jenkins”按钮时,该钩子起作用,但在推送新提交后它不会触发。

【问题讨论】:

    标签: git jenkins bitbucket-server


    【解决方案1】:

    我不得不做一些挖掘工作。首先,我turned on Bitbucket Server debug loggin via the UI。那时,我在将我指向an article about git hooks not firing 的日志中看到了一些错误。

    从那里,我开始在我的 bitbucket_home 目录中挖掘丢失的脚本及其文件权限。虽然我没有找到 20_bitbucket_callback 脚本,但我确实在同一目录中找到了 20_stash_callback 脚本!

    文章建议检查他们在服务器上的文件权限,所以我做了。

    find . -name 20_stash_callback -printf "%p:  %u:%g %m\n" find . -name pre-receive -printf "%p:  %u:%g %m\n" find . -name post-receive -printf "%p:  %u:%g %m\n"

    你瞧,所有的脚本都拥有 644 权限,即“root 用户读/写,其他人只读”。我用一点find ... -exec 改变了它。

    sudo -u someuser find . -name 20_stash_callback -type f -exec chmod 774 {} \; sudo -u someuser find . -name post-receive -type f -exec chmod 774 {} \; sudo -u someuser find . -name pre-receive -type f -exec chmod 774 {} \;

    当我想到我可能需要将回调脚本重命名为文档中描述的脚本时,我仍然没有看到我的 jenkins 构建火。

    sudo -u someuser find . -name 20_stash_callback -type f -exec rename 20_stash_callback 20_bitbucket_callback {} \;
    

    在那之后,我的钩子起作用了!有很多的欣喜。

    请注意,上面使用的someuser 帐户是我们的存储实例在其下运行的本地用户。如果您使用上述脚本,请确保根据您的需要进行更改。

    【讨论】: