GitHub Workflow自托管Runner出现重复Authorization头错误
这个错误的核心是Git请求时发送了两个重复的Authorization头,导致GitHub返回400错误。以下是针对自托管Runner的具体解决方法:
1. 清理自托管Runner的全局Git凭据
登录到你的自托管Runner机器,执行以下操作:
- 取消全局Git凭据助手:
git config --global --unset credential.helper - 检查并删除存储的GitHub凭据:
- Linux/macOS:删除
~/.git-credentials文件中相关的GitHub条目 - Windows:打开「凭据管理器」,找到GitHub相关的凭据并删除
- Linux/macOS:删除
2. 显式指定checkout的token
修改你的checkout步骤,强制使用Workflow的GITHUB_TOKEN,避免与Runner本地凭据冲突:
- name: Checkout Repo uses: actions/checkout@v3 with: fetch-depth: 0 # Fetch all commit history persist-credentials: false token: ${{ secrets.GITHUB_TOKEN }}
3. 排查Runner的环境变量和Git配置
在Workflow中添加调试步骤,确认是否有额外的Git配置或环境变量注入凭据:
- name: Debug Git Configuration run: | # 列出所有Git配置及其来源 git config --list --show-origin # 检查可能影响凭据的环境变量 echo "GIT_ASKPASS: $GIT_ASKPASS" echo "GIT_USERNAME: $GIT_USERNAME"
4. 重置自托管Runner
如果以上方法都无效,尝试重新注册自托管Runner,清除所有旧配置:
- 在GitHub仓库的「Settings > Actions > Runners」中删除现有Runner
- 按照官方步骤重新下载并注册Runner
内容的提问来源于stack exchange,提问作者Tharun
相关产品推荐
相关产品推荐

