Bitbucket和Azure DevOps之间的集成

3
我的要求是将我的Bitbucket存储库与Azure DevOps CI服务器集成,这样只要我在Bitbucket存储库中推送代码,我的管道就会在Azure DevOps CI服务器上触发。为此,我已在Bitbucket存储库中创建了一个Webhook。
我已在Webhook的URL部分中添加了Azure DevOps CI服务器的URL,并在秘密部分中添加了一个秘密,该秘密是在Azure DevOps Server中生成的个人访问令牌。但是,在创建Webhook时,我遇到了问题。
Resource not available for anonymous access. Client authentication required. - Azure DevOps server

尽管我添加了一个密码,为什么还会出现客户端身份验证错误?可能的原因是什么?
附注:Bitbucket仓库和Azure DevOps CI服务器之间的集成文档很少。

enter image description here

更新:我已经按照Vito Liu-MSFT的建议在触发器选项卡上启用了持续集成,但是当我将代码推送到Bitbucket的feature/POC分支时,我的流水线仍然无法自动触发。

enter image description here

Yml文件如下:
resources:
  repositories:
  - repository: myRepo
    type: externalgit
    name: 'myRepo' 
    endpoint: myrepo
    ref: feature/POC 

trigger:
  - feature/POC
3个回答

4

我已经通过替换{}大括号中的值,成功创建了下面URL的 webhook。现在,在webhook中我得到了200的响应。

       https://{hostName}/{collectionName}/_apis/public/pipelines/webhooks/{projectName}/{buildDefinitionId}/{repositoryKey}?api-version=6.0-preview.1 

你怎么获取仓库密钥? - onegun

1
我在Bitbucket仓库中提交代码,我的流水线应该会在Azure DevOps CI服务器上触发。我们可以在Azure DevOps中创建“服务连接”,创建流水线并选择Bitbucket Cloud作为源,然后在“触发器”选项卡中选择“启用持续集成”。欲了解更多详情,请参阅doc
更新1:
是的,如果在触发器选项卡中启用了持续集成,我们就不需要在Bitbucket中使用Webhook。我已经分享了我的测试结果,你可以查看下面的图片。

enter image description here

更新2:
根据图片显示,您似乎使用的是Azure Repos Git作为源,而不是Bitbucket Cloud,请注意源图标。

enter image description here

更新3:
在Azure DevOps中创建yaml管道,我们需要选择Bitbucket Cloud作为代码资源。

enter image description here

然后选择Bitbucket存储库,它将把yaml文件保存在Bitbucket Repo中而不是Azure DevOps repo中,然后我们可以配置CI触发器。

enter image description here

我正在使用默认的yaml模板进行测试。
注意:我们需要更新触发器字段,Azure DevOps已将默认分支更新为main而不是master

enter image description here

注意:如果yml文件保存在Azure DevOps存储库中,当我们在Bitbucket存储库中推送代码时,它将不会触发构建。

enter image description here


是的,你可以检查update1,然后在这里友好地分享结果。 - Vito Liu
嗨@PawanPatil,请检查更新2并注意源图标,我们应该创建服务连接,然后在管道中选择Bitbucket Cloud作为源。 - Vito Liu
等一下,你是在使用 YAML 构建而不是经典编辑器,对吧? - Vito Liu
我已经在update3中分享了测试步骤,请检查并在此处分享结果。 - Vito Liu
1
发布了答案 - Pawan Patil
显示剩余8条评论

0

BitBucket on-perm服务器托管在哪里?您能否通过外部互联网访问BitBucket on-premise存储库?如果可以,那么托管代理也可以访问它们。

但是,如果您无法从外部互联网访问存储库,则托管代理也无法访问BitBucket on-premise存储库。因此,您必须将BitBucket服务器公开在互联网上。

另一个解决方法是在BitBucket on-perm服务器或任何其他位于与BitBucket on-perm服务器相同网络中的机器上部署私有代理(自托管代理)。因此,私有代理可以访问BitBucket存储库...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接