如何配置Azure发布管道,将审批通知从Slack切换至Jira?
解决方案
1. 关闭原有Slack审批通知
先停用之前依赖Slack的预部署审批通知:
- 进入Azure DevOps目标发布管道的对应阶段,找到Pre-Deployment Approvals配置项
- 移除或禁用所有与Slack关联的通知触发规则
2. 基于已安装的Jira集成扩展实现审批通知
方式一:通过自定义脚本触发Jira API发送通知
在发布管道的预审批阶段添加自定义任务,调用Jira API推送审批提醒:
- 添加PowerShell/Bash脚本任务,设置为审批触发前执行
- 脚本核心逻辑:检测到发布进入待审批状态时,调用Jira API给关联工单添加审批提醒评论,或直接发送通知给工单负责人
- 示例Jira API调用(云版本):
curl -X POST \ -H "Authorization: Basic $(JIRA_API_TOKEN)" \ -H "Content-Type: application/json" \ "https://your-jira-domain.atlassian.net/rest/api/3/issue/{ISSUE_KEY}/comment" \ -d '{"body": "Azure DevOps发布待审批:[发布名称],请处理"}' - 注意:将Jira API密钥存储在Azure DevOps变量组的机密项中,避免硬编码
方式二:扩展Jira集成扩展的同步逻辑
利用现有扩展的工单绑定能力,触发Jira内部通知:
- 确保发布管道已与对应Jira工单关联(扩展已支持该功能)
- 在Jira中配置通知规则:当工单关联的Azure DevOps发布状态变为「待审批」时,自动发送通知给指定审批人
- 若需要更精准的触发,可在Azure DevOps中添加事件监听任务,捕获
ApprovalPending事件后调用Jira API触发工单状态变更,进而触发Jira内置通知
3. 可选:实现Jira内完成审批闭环
如果需要直接在Jira中完成审批动作,而非仅接收通知:
- 在Jira中创建自定义工作流,添加「Azure发布审批」状态
- 当Azure DevOps触发审批时,调用Jira API将工单切换至该状态,触发Jira内部审批流程
- 审批完成后,通过Jira Webhook回调Azure DevOps API,自动完成发布审批
关键注意事项
- 确保Azure DevOps服务主体拥有Jira API的调用权限,Jira侧需允许Azure DevOps的访问IP
- 测试阶段手动触发发布,验证Jira工单是否收到通知,排查API调用的权限或参数问题
- 彻底禁用原Slack通知配置,避免重复推送
内容的提问来源于stack exchange,提问作者Nayden Van
相关产品推荐
相关产品推荐

