如何将GitHub提交与拉取请求关联至Azure DevOps工作项?
将GitHub提交/拉取请求关联到Azure DevOps工作项的实操方案
1. 提交消息直接引用工作项ID
在GitHub的提交消息、PR描述或评论里,加入Azure DevOps工作项的标识格式:项目缩写#工作项ID,比如AB#123(AB是你的Azure DevOps项目缩写,123是目标工作项的ID)。只要仓库已完成Azure DevOps集成,提交后Azure DevOps会自动在对应工作项的「开发」标签页下同步显示该提交/PR记录。
2. 配置GitHub与Azure DevOps的基础集成
- 登录Azure DevOps项目,进入「项目设置」→「GitHub连接」,点击「添加连接」,授权关联你的GitHub仓库(支持单个仓库或整个GitHub组织)。
- 组织级别的配置可在Azure DevOps组织设置中操作,完成后该组织下所有项目都能复用此连接。
3. 拉取请求(PR)的关联与强制规则
- 除了在PR描述里加
AB#123,还可以在GitHub仓库的「设置」→「分支保护规则」中添加规则:要求PR描述必须包含AB#[0-9]+格式的内容,确保所有PR都关联工作项,避免遗漏。
4. 自动化关联的进阶实现(可选)
如果需要更自动化的关联逻辑(比如从PR标题自动提取工作项ID并关联),可以用GitHub Actions编写脚本:
name: Link Azure DevOps Work Item on: [pull_request] jobs: link-work-item: runs-on: ubuntu-latest steps: - name: Extract Work Item ID from PR title id: extract run: echo "::set-output name=work_item_id::$(echo "${{ github.event.pull_request.title }}" | grep -o 'AB#[0-9]*' | cut -c4-)" - name: Link to Azure DevOps if: steps.extract.outputs.work_item_id != '' run: | az devops work-item update --id ${{ steps.extract.outputs.work_item_id }} --add-field "System.Tags" "GitHub PR: ${{ github.event.pull_request.number }}" env: AZURE_DEVOPS_EXT_PAT: ${{ secrets.AZURE_DEVOPS_PAT }} AZURE_DEVOPS_ORG_URL: "https://dev.azure.com/你的组织名" AZURE_DEVOPS_PROJECT: "你的项目名"
使用前需在GitHub仓库的「Secrets and variables」→「Actions」中添加Azure DevOps的PAT令牌(需有工作项编辑权限),并替换脚本中的组织和项目名。
内容的提问来源于stack exchange,提问作者Pelumi
相关产品推荐
相关产品推荐

