You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Azure DevOps拉取请求完成时调用指定Jira Webhook的实现方式咨询

在Azure DevOps中实现特定分支PR完成时触发Jira Webhook的方案

一、通过Azure DevOps界面直接实现

完全可以通过项目内的**服务钩子(Service Hooks)**界面配置完成,无需依赖流水线,步骤如下:

  • 打开Azure DevOps目标项目,进入「项目设置」→「服务钩子」
  • 点击「创建订阅」,选择「Web Hooks」作为目标服务
  • 触发事件配置:选择「拉取请求已完成」,然后设置筛选条件:
    • 在「分支筛选」中,针对源分支或目标分支设置匹配规则,比如要匹配包含jira-task的分支,可使用通配符*jira-task*
    • 还可额外筛选PR的合并状态(比如仅合并成功的PR触发)
  • HTTP请求配置:
    • 填入Jira的Webhook URL
    • 请求方法选择POST
    • 在「请求正文」中按Jira要求的格式编写内容,可直接使用Azure DevOps提供的变量动态插入PR信息,比如$(pullRequest.targetBranch)、$(pullRequest.description)、$(pullRequest.createdBy.displayName)等
    • 如果Jira Webhook需要认证,可在「HTTP头」里添加认证信息(比如Basic Auth的Authorization头)
  • 完成配置后点击「测试」验证请求是否能正常发送,确认无误后保存订阅

二、流水线变通方案(适用于复杂场景)

如果你的需求涉及更复杂的分支判断逻辑(比如多分支规则组合、需要对PR数据做额外处理),可以用流水线作为补充:

  • 创建一个新流水线,设置触发条件为「拉取请求已完成」,并添加分支筛选规则(仅匹配目标分支/源分支符合要求的PR)
  • 在流水线中添加PowerShell或Bash任务,编写脚本判断分支名称是否符合预期,若符合则发送HTTP请求到Jira的Webhook地址
  • 脚本示例(PowerShell):
$branchName = "$(Build.SourceBranchName)"
if ($branchName -match "your-specific-keyword") {
    $webhookUrl = "你的Jira Webhook URL"
    $body = @{
        prTitle = "$(System.PullRequest.Title)"
        prBranch = $branchName
        prUrl = "$(System.PullRequest.SourceRepositoryURI)/pullrequest/$(System.PullRequest.PullRequestId)"
    } | ConvertTo-Json
    Invoke-RestMethod -Uri $webhookUrl -Method Post -Body $body -ContentType "application/json"
}

内容的提问来源于stack exchange,提问作者NK94

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 20:42:40