Azure DevOps自动创建PR时能否将分支创建者设为PR作者?
问题解决:将Azure DevOps自动创建PR的作者设为分支创建者
可以实现,以下是具体方案:
核心思路
构建服务用户默认作为PR创建者,要改成分支创建者,需先获取分支推送/创建者的身份信息,再通过Azure DevOps REST API(Azure CLI暂不支持指定PR作者)创建PR。
具体步骤
获取分支创建者/推送者信息
- 流水线中可直接通过内置变量
Build.RequestedForId和Build.RequestedFor获取触发流水线的用户(即分支推送者)的ID与名称。 - 若需精准获取分支创建者信息,可执行Git命令:
git log --pretty=format:"%an,%ae" <分支名> --max-count=1,拿到创建者的姓名和邮箱后,调用Azure DevOps的UsersAPI匹配到对应的用户ID。
- 流水线中可直接通过内置变量
调用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权限。配置流水线权限
确保构建服务用户拥有创建PR的权限,且能够访问用户信息API。
注意事项
- 若通过邮箱匹配用户ID,需确认Azure DevOps用户邮箱与Git提交邮箱一致,避免匹配失败。
- 内置变量
Build.RequestedForId仅在用户推送分支或手动触发流水线时有效,其他触发场景需额外处理逻辑。
内容的提问来源于stack exchange,提问作者RomeoRomeo
相关产品推荐
相关产品推荐

