如何通过Azure DevOps命令行创建拉取请求并自动关联源分支独有的工作项
如何通过Azure DevOps命令行创建拉取请求并自动关联源分支独有的工作项
这个问题我之前也碰到过!Azure DevOps网页端创建PR时会自动检测并关联源分支有但目标分支没有的工作项,但az repos pr create命令默认不会触发这个UI层面的自动关联逻辑。不过我们可以通过两步操作来实现这个需求:先获取分支间差异的工作项ID,再创建PR时手动关联这些ID。
步骤1:获取源分支独有的工作项ID
Azure DevOps CLI提供了az repos work-item list命令,专门用来查询两个分支之间关联的工作项差异,正好对应网页端显示的那些工作项。你可以用下面的命令获取目标ID列表:
# 替换成你的仓库名、源分支和目标分支 WORK_ITEM_IDS=$(az repos work-item list \ --repository "你的仓库名称" \ --source-branch "release/xxx" \ --target-branch "prod" \ --output tsv \ --query "[].id")
这个命令会输出所有仅在源分支关联、未同步到目标分支的工作项ID,并用空格分隔存储到WORK_ITEM_IDS变量中。如果没有差异工作项,变量会是空的,后续命令也能正常执行。
步骤2:创建PR并关联工作项
接下来用az repos pr create命令创建PR,通过--work-items参数传入刚才获取的工作项ID:
az repos pr create \ --source-branch "release/xxx" \ --target-branch "prod" \ --title "Merge release/xxx to prod" \ --description "自动创建的PR,已关联源分支独有的工作项" \ --work-items $WORK_ITEM_IDS
这样创建出来的PR就会和网页端手动创建的一样,自动关联所有符合条件的工作项了。
注意事项
- 确保你的Azure DevOps CLI是最新版本,旧版本可能没有
az repos work-item list这个命令,升级命令:az upgrade - 如果工作项数量较多,这个方法依然适用,
--work-items参数支持多个ID用空格分隔 - 执行命令前记得先通过
az devops login登录,并设置好默认的组织和项目(可以用az devops configure --defaults organization=你的组织URL project=你的项目名)
备注:内容来源于stack exchange,提问作者Stephane
相关产品推荐
相关产品推荐

