从Azure DevOps管道推送到受保护的Github分支

时间:2020-09-23 21:57:31

标签: git github azure-devops devops

我有一个DevOps管道,其任务是更新文件,并将其提交回Github中的受保护分支。从仓库中签出就可以了。我以为我有正确的权限设置,但没有用。

我已在此处允许azure-pipelines的权限:

enter image description here

我已指定以下内容,以保留原始签出的身份验证:

steps:
- checkout: self
  persistCredentials: true  

- task: Bash@3
  inputs:
    targetType: inline
    script: |
      git checkout integration

然后,在进行更改后,我想像这样将其推回到集成分支:

- task: Bash@3
  inputs:
    targetType: inline
    script: |
      cd ./Test/Test.UWP
      git config --global user.email "test@test.com"
      git status
      cd ../..
      git add .
      git commit -m "Release $(versionNumber)"
      git push origin integration

这将返回以下输出,但不会将其推回到integration分支:

remote: error: GH006: Protected branch update failed for refs/heads/integration.        
remote: error: At least 1 approving review is required by reviewers with write access.        
To https://github.com/test/test-app
 ! [remote rejected] integration -> integration (protected branch hook declined)
error: failed to push some refs to 'https://github.com/test/test-app'

2 个答案:

答案 0 :(得分:0)

解决方案是创建另一个帐户,并通过管理员权限从中生成PAT。

然后,我将应用程序克隆到代理的单独目录中。修改了我需要的内容,并能够使用git bash创建标签和所有内容。

答案 1 :(得分:-1)

在这种情况下,您可以检查解决方案:Cannot push on github suddently

您可以向管理员授予访问Azure管道的权限,也可以转到“设置”->“分支”以打勾Allow force pushes (Permit force pushes for all users with push access)进行强制推送。