Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用Github操作复制回购时发生身份验证错误_Git_Github_Github Actions - Fatal编程技术网

尝试使用Github操作复制回购时发生身份验证错误

尝试使用Github操作复制回购时发生身份验证错误,git,github,github-actions,Git,Github,Github Actions,我有一堆使用Azure Pipelines for CI/CD的回购协议,我现在正尝试将其移植到Github操作。这是我正在研究的第一个: 我已经让它99%的工作,但我得到了一个奇怪的认证错误的一步。回购被镜像到另一个组织(cloudyr),我使用此步骤进行镜像: - name: Copy to Cloudyr if: runner.os == 'Linux' env: token: "${{ secrets.ghPat }}" run

我有一堆使用Azure Pipelines for CI/CD的回购协议,我现在正尝试将其移植到Github操作。这是我正在研究的第一个:

我已经让它99%的工作,但我得到了一个奇怪的认证错误的一步。回购被镜像到另一个组织(cloudyr),我使用此步骤进行镜像:

  - name: Copy to Cloudyr
    if: runner.os == 'Linux'
    env:
      token: "${{ secrets.ghPat }}"
    run: |
      export CLOUDYR_REPO=$(echo $GITHUB_REPOSITORY | sed "s/Azure/cloudyr/")
      git push --prune https://$token@github.com/${CLOUDYR_REPO}.git +refs/remotes/origin/*:refs/heads/* +refs/tags/*:refs/tags/*
这将从回购机密中检索PAT,并执行
git推送
。它在Azure管道上工作得非常好,但现在失败了,出现以下错误:

Run export CLOUDYR_REPO=$(echo $GITHUB_REPOSITORY | sed "s/Azure/cloudyr/")
remote: Permission to cloudyr/AzureAuth.git denied to github-actions[bot].
fatal: unable to access 'https://github.com/cloudyr/AzureAuth.git/': The requested URL returned error: 403
Error: Process completed with exit code 128.
有人能解释一下是什么原因造成的,以及如何修复它吗?我拥有Azure/AzureAuth和cloudyr/AzureAuth回购协议的管理员权限。我还检查了PAT是否有效


失败日志在此处:

GitHub操作使用http.extraheader选项之一存储配置选项,以在自定义授权标头中发送用于克隆存储库的原始令牌。这是一个坏主意,因为当您使用另一个存储库时,它会与Git添加的授权头冲突,并且发出的令牌仅对原始存储库有效

如果要推送到另一个存储库,则需要通过如下操作取消设置该配置选项:

git config -l | grep 'http\..*\.extraheader' | cut -d= -f1 | \
    xargs -L1 git config --unset-all
此外,应避免在用户名字段中传递授权令牌。虽然GitHub对此进行了筛选,但用户名字段更可能出现在日志中,因此最好使用虚拟名称将其传递到密码字段中,如下所示:

git push --prune https://token:$token@github.com/${CLOUDYR_REPO}.git

GitHub操作使用
http.extraheader
选项之一存储配置选项,以在自定义授权标头中发送用于克隆存储库的原始令牌。这是一个坏主意,因为当您使用另一个存储库时,它会与Git添加的授权头冲突,并且发出的令牌仅对原始存储库有效

如果要推送到另一个存储库,则需要通过如下操作取消设置该配置选项:

git config -l | grep 'http\..*\.extraheader' | cut -d= -f1 | \
    xargs -L1 git config --unset-all
此外,应避免在用户名字段中传递授权令牌。虽然GitHub对此进行了筛选,但用户名字段更可能出现在日志中,因此最好使用虚拟名称将其传递到密码字段中,如下所示:

git push --prune https://token:$token@github.com/${CLOUDYR_REPO}.git

感谢您提供的信息(这一GHA行为是否有记录在案?)。我试过了,但现在它给出了一个不同的错误:
Tohttps://github.com/cloudyr/AzureAuth.git   ! [远程拒绝]主机(拒绝删除当前分支:refs/heads/master)![远程拒绝]来源/修复操作->修复操作(不允许浅更新)错误:无法将某些引用推送到'https://github.com/cloudyr/AzureAuth.git“
我不知道它是否有文档记录。有一个关于它的错误报告,但它没有改变,因为Apple Git破坏了凭据管理器的行为,这是解决这个问题的正确方法。至于您的新错误消息,这是一个完全不同的问题,这个评论框太小,无法充分回答。请用另一个问题提问好吗?谢谢你提供的信息(这是GHA行为记录在案的地方吗?)。我试过了,但现在它给出了一个不同的错误:
Tohttps://github.com/cloudyr/AzureAuth.git   ! [远程拒绝]主机(拒绝删除当前分支:refs/heads/master)![远程拒绝]来源/修复操作->修复操作(不允许浅更新)错误:无法将某些引用推送到'https://github.com/cloudyr/AzureAuth.git“
我不知道它是否有文档记录。有一个关于它的错误报告,但它没有改变,因为Apple Git破坏了凭据管理器的行为,这是解决这个问题的正确方法。至于您的新错误消息,这是一个完全不同的问题,这个评论框太小,无法充分回答。请你换个问题问好吗?