如何在 Bitbucket 和 Azure DevOps 之间创建 webhook?

kor*_*or_ 8 continuous-integration bitbucket azure-devops

我们在 Bitbucket 中拥有所有存储库,我正在尝试为 Azure DevOps 设置持续集成服务,以便在每次推送后构建项目。

我们为 Bitbucket 存储库创建了一个专用用户帐户,该帐户只能真正访问所有存储库。

但是,创建从 Bitbucket 到 Azure Devops 的 CI Webhook 触发器需要对存储库的管理员访问权限。我们不想为 CI 用户帐户提供该级别的访问权限。

我可以手动将 webhook 添加到 Bitbucket 存储库,但我缺少webhook 应将触发器发布到的 URL

网址类似于https://dev.azure.com/myorganization/_apis/public/hooks/externalEvents?publisherId ...

我认为它被称为部署触发器 url,但我在任何地方都找不到它。新的 Azure DevOps 支持手动添加 webhooks 还是我们必须以某种方式手动添加?

小智 3

我和你们大家在同一条船上。我不想授予我的 CI 帐户对任何存储库的“管理员”权限。

到目前为止,我的解决方法是为 CI 帐户提供临时访问权限,以便在首次保存管道时创建 Webhook,然后在创建 Webhook 后将其降级,因为知道任何更改都将需要另一次临时权限提升。

FWIW,使用的 webhook URL 是这样的: https://[REDACTED].visualstudio.com/_apis/public/hooks/externalEvents?publisherId=bitbucket&channelId=[REDACTED]&api-version=5.1-preview

正如您所看到的,我们在这里处于一种可以理解的 Catch-22 状态,因为我们可以想象创建管道并使用它channelId在 Bitbucket 中手动创建 Webhook,但在没有存储库管理员权限的情况下甚至无法保存管道,所以我们无法获取channelId.

我希望有一种方法可以禁用 Webhook 创建,以便我们可以在 Bitbucket 端手动创建它。