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

Azure DevOps自动创建PR时能否将分支创建者设为PR作者?

问题解决:将Azure DevOps自动创建PR的作者设为分支创建者

可以实现,以下是具体方案:

核心思路

构建服务用户默认作为PR创建者,要改成分支创建者,需先获取分支推送/创建者的身份信息,再通过Azure DevOps REST API(Azure CLI暂不支持指定PR作者)创建PR。

具体步骤

  1. 获取分支创建者/推送者信息

    • 流水线中可直接通过内置变量Build.RequestedForId和Build.RequestedFor获取触发流水线的用户(即分支推送者)的ID与名称。
    • 若需精准获取分支创建者信息,可执行Git命令:git log --pretty=format:"%an,%ae" <分支名> --max-count=1,拿到创建者的姓名和邮箱后,调用Azure DevOps的Users API匹配到对应的用户ID。
  2. 调用Azure DevOps REST API创建PR
    替换Azure CLI,改用REST API创建PR,在请求体中指定createdBy字段填入用户ID。示例请求如下:

    POST https://dev.azure.com/{组织名}/{项目名}/_apis/git/repositories/{仓库ID}/pullrequests?api-version=7.1-preview.1
    Content-Type: application/json
    
    {
      "sourceRefName": "refs/heads/{源分支名}",
      "targetRefName": "refs/heads/{目标分支名}",
      "title": "{PR标题(可包含Jira编号)}",
      "description": "自动创建的PR",
      "createdBy": {
        "id": "{分支创建者的用户ID}"
      }
    }
    

    在流水线中用PowerShell或Bash脚本发送请求时,需使用构建服务用户的PAT(个人访问令牌)验证,令牌需具备Code Contribute权限。

  3. 配置流水线权限
    确保构建服务用户拥有创建PR的权限,且能够访问用户信息API。

注意事项

  • 若通过邮箱匹配用户ID,需确认Azure DevOps用户邮箱与Git提交邮箱一致,避免匹配失败。
  • 内置变量Build.RequestedForId仅在用户推送分支或手动触发流水线时有效,其他触发场景需额外处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:35:00