为什么我无法从 DevOps 管道推送到 Azure Git

Tim*_*ter 5 git azure-git-deployment azure-pipelines azure-pipelines-yaml

错误消息是(TF401027:您需要 Git 'GenericContribute' 权限才能执行此操作。详细信息:身份 'Build\8ec5f0f1-6bca-4182-bb3e-2d47a64262bf',范围 'repository'。)

我已获取该 GUID 并确认它所代表的帐户拥有存储库上的所有必要权限,以及更多权限:

  • 贡献
  • 创建分支
  • 推送时绕过策略

目标分支未锁定,并且未应用任何策略。

我的管道的 YAML 相关部分如下所示:

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      git config --global user.email "me@example.com"
      git config --global user.name "Build Agent1"
    pwsh: true

- checkout: self
  persistCredentials: true
  
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    pwsh: true
    script: |
      Write-Host "------------------------------------------------------------"
      # Update the file src\version.ts here
      git add src\version.ts
      git commit -m "Version bump from build pipeline [skip ci]"
      git push origin HEAD:Eval 
Run Code Online (Sandbox Code Playgroud)

Eval是我要推送到的分支的名称(管道正在运行的同一分支)。版本文件已更新,但最后一行失败。我已经在没有的情况下尝试过,HEAD:Eval但随后出现错误,表明我处于断开连接的 Head 状态,需要添加HEAD:branchName

更新:下面的图像显示了错误消息中 GUID 引用的帐户的权限: 建立帐户的权限

Tim*_*ter 3

我能够通过{Project Name} Build Service ({organization})在特定分支上而不是仅在存储库本身上设置构建帐户 () 的安全性来完成这项工作。在 Branches 页面中,单击目标分支右侧的省略号并选择 Branch Security,然后确保构建帐户具有权限:

在此输入图像描述