假设我们有以下分支机构:
故事可以合并到 sprint(对于 sprint 项目)或 Master(对于修补程序),我们想要的是这样的:
我们想要保护 master 或 sprint 分支,因此它们只能通过 PR 请求进行更改。
除了 QA 手动创建 PR 然后合并到主分支之外,我还想在构建任务中执行此操作。所以我尝试使用 Azure CLI 任务来运行批处理:
az repos pr create --auto-complete true --bypass-policy true --bypass-policy-reason "CI build" --repository JerryTestCI --source-branch R_Current_Sprint --target-branch master
这给了我一个错误: 在运行 Azure DevOps 命令之前,需要运行登录命令(如果使用 AAD/MSA 身份,则运行 az login;如果使用 PAT 令牌,则运行 az devops login)来设置凭据。 请参阅 https://aka.ms/azure-devops-cli-auth 了解更多信息。
但是,当我的脚本在构建任务中运行时,我如何登录?我尝试过这个,但我的构建只会挂在这个命令上。
az devops login --organization https://XXX.visualstudio.com/
那么我的想法是正确的工作方式吗?如果可以的话,我如何在构建管道中创建并完成 PR 请求?
您可以通过以下方式使用 az devops cli 登录:
echo $PersonalAccessToken | az devops login
az devops configure --defaults organization=https://dev.azure.com/$OrganizationName project=$ProjectName
https://learn.microsoft.com/en-us/azure/devops/cli/log-in-via-pat?view=azure-devops&tabs=windows
但是,是的,这应该可以正常工作。
添加到上述答案 - 如果您的管道构建代理具有足够的权限,则无需创建 PAT。
- checkout: self
persistCredentials: true
- bash: |
git config --global user.email "[email protected]"
git config --global user.name "Azure DevOps Pipeline"
name: GitConfig
- pwsh: |
git checkout -b MyBranch main
New-Item test.txt //add something new
git add test.txt
git commit -m "Test commit"
git push origin "HEAD:MyBranch"
az repos pr create <INSERT ARGS HERE>
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
所需代码来自以下来源