Git 如何将Bitbucket正确连接到Jenkins

Git 如何将Bitbucket正确连接到Jenkins,git,jenkins,continuous-integration,bitbucket,Git,Jenkins,Continuous Integration,Bitbucket,从现在开始大约一周,Bitbucket不会(?)向我的Jenkins服务器发送请求 我把一切都安排成这样: 端点http://username:apitoken@jenkinshost/ username=詹金斯中的用户名 apitoken=连接到Jenkins中用户名的apitoken jenkinshost=我运行Jenkins的主机 项目名称是一个项目 令牌:我可以在每个项目配置中设置的令牌 我是根据这个网站做的:。 它确实起作用了,但不再起作用了。Bitbucket改变了什么吗?我怎样才

从现在开始大约一周,Bitbucket不会(?)向我的Jenkins服务器发送请求

我把一切都安排成这样:

端点
http://username:apitoken@jenkinshost/

username
=詹金斯中的用户名
apitoken
=连接到Jenkins中用户名的apitoken
jenkinshost
=我运行Jenkins的主机

项目名称
是一个项目
令牌
:我可以在每个项目配置中设置的令牌

我是根据这个网站做的:。
它确实起作用了,但不再起作用了。Bitbucket改变了什么吗?我怎样才能解决这个问题


我不熟悉这个插件,但是我们非常成功地将Bitbucket和Jenkins一起使用,但是我们对更改进行轮询,而不是从Bitbucket推送更改(因为我们的构建服务器隐藏在公司防火墙后面)。如果当前方法仍然存在问题,则此方法可能适用于您


上的本文档详细介绍了如何通过SSH在构建服务器和Bitbucket之间进行通信。完成后,在已安装的情况下,转到构建配置并在源代码管理下选择“Git”,然后输入存储库的ssh URL作为存储库URL。最后,在Build Triggers部分,选择Poll SCM并将轮询频率设置为您需要的任何频率。

通过迭代,我了解到端点中的令牌字段和令牌可以相同。因此,我将它们设置为与用户令牌相同,并且可以正常工作!还要检查用户是否具有进行作业的权限

无论如何,您可以检查access.log,看看Bitbucket是否尝试过


另外,还有一个链接。也许有一天它会变得更有用。

我刚刚能够使用Bitbucket中的Hooks选项,通过以下步骤(类似于链接)成功地触发提交时的构建:

  • 生成自定义UUID或字符串序列,保存以备以后使用
  • Jenkins->配置项目->生成触发器->远程触发生成(例如,从脚本)
  • (此处粘贴UUID/字符串)用于“身份验证令牌”
  • 拯救
  • 编辑Bitbucket存储库设置
  • 钩子->编辑: 终点: 模块名称: 项目名称:项目名称 令牌:(在此处粘贴UUID/字符串)

  • 端点不需要在URL中插入基本HTTP auth,尽管使用了身份验证,但我没有使用模块名称字段,并且输入的项目名称区分大小写,包括测试用例中的空格。构建并不总是立即触发,而是相对较快。另一件事,您可能会考虑禁用“防止跨站点请求伪造漏洞”选项,因为在启用该选项时,我已经经历了来自现有集成的各种API难题。

    < p>我有类似的问题,直到我找到它为止。以下是集成的完整列表:

  • 生成公钥/私钥对:
    ssh-keygen-t rsa
  • 复制公钥(~/.ssh/id_rsa.pub)并将其粘贴到用户帐户管理控制台的Bitbucket ssh密钥中:

  • 将私钥(~/.ssh/id\u rsa)复制到具有私钥凭据的新用户(甚至现有用户),在这种情况下,用户名不会产生任何影响,因此用户名可以是任何内容:

  • 运行此命令以测试是否可以访问Bitbucket帐户:
    ssh-Tgit@bitbucket.org

  • 可选:现在,您可以使用git将回购复制到桌面,而无需passwjord
    git克隆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.
    

    为了在新提交后构建回购,请使用

    只有一件事需要注意: 当创建一个POST钩子(注意它是POST钩子,而不是Jenkins钩子)时,URL在最后有一个“/”时工作。比如:

    URL: JENKINS_URL/bitbucket-hook/
    e.g. someAddress:8080/bitbucket-hook/
    

    不要忘记检查作业配置中的“更改推送到Bitbucket时生成”。

    我遇到了这个问题,问题是我用CamelCase命名了我的存储库。Bitbucket会自动将存储库的URL更改为全小写,并在webhook中发送给Jenkins。然后,Jenkins搜索具有匹配存储库的项目。如果您像我一样,在项目配置中的存储库URL中有CamelCase,您将能够签出代码,但是webhook请求上的模式匹配将失败


    只需将您的repo URL更改为全小写而不是CamelCase,模式匹配就会找到您的项目。

    是的,我知道这个解决方案,但我正在明确寻找设置此插件的方法。@andrewdotnich关于所有可能的方法。最后,我像robjohncox(下面)所说的那样做了,检查差异。这很有效,但我不喜欢投票部分。我只想在我提交时立即重建…你能添加更多关于它如何不工作的细节吗?你得到了什么错误消息(如果有的话?)詹金斯日志中有什么吗?它工作了,从某个时候起就不再工作了。我没有收到错误消息,因为此请求应该从Bitbucket主机发送到我的服务器。[sarcasm]不幸的是,我没有Bitbucket应用程序的root访问权限[/sarcasm]。我可能误解了你的问题,如果是这样的话,请告诉我:)另外:当我尝试自己做请求时,通过将web浏览器指向我的端点,它确实起作用。这意味着在我的理解中,Bitbucket做错了什么,或者什么也没做。你可以试试Bitb