授权bash访问GitHub受保护的分支

问题描述 投票:1回答:1

这可能是一个愚蠢的问题,但在这里我经过两天的头部撞击😔

我目前正在GitHub Actions上工作,在某个时候git push会到达受保护的分支(实际上是master)。但是,一旦进入此步骤,作业将失败,并显示“ 您无权推送”错误消息:

Error message错误代码GH006

在我的情况下,这是第一次发生,这意味着该工作人员(CLI,bash)完全未被授权。因此,我将其记录在专用的GitHub帐户中,这是我呆了几天的地方。

因此,如何通过CLI登录GitHub帐户?


我尝试过的事情:

手动推动主控

这可以正常工作,因为授权是可以的,但它显然不是自动化的,这是我要的。

一些细节:

  • 我使用的是Windows 10,但该作业设置为在"ubuntu-18.04"上运行;
  • [在执行git push之前,我已经从Windows凭据管理器中删除了所有与GitHub相关的登录,然后通过GitHub登录对话框窗口再次进行设置。

按预期手动推送未经授权的凭据失败。

git remote set-url origin "https://$username:[email protected]/my/repo"

这似乎没有任何效果。我已经尝试过设置现有远程服务器的URL和使用不同URL的“添加后删除”的远程服务器,这两种方法似乎都一样(不起作用)。

以下配置均无效:

steps:
  - run: git remote set-url origin "https://$username:[email protected]/my/repo"
  - run: git push origin master
steps:
  - run: git remote remove origin
  - run: git remote add origin "https://$username:[email protected]/my/repo"
  - run: git fetch origin --all # with and without this step
  - run: git push origin master

curl -u "$username:$token" https://api.github.com/user

这是suggested in the docs,它的确成功,但是直到git push为止登录都不会持续-即使推送是在同一步骤中进行的。我怀疑可能存在与Cookie相关的解决方案,但是我不确定它们在非浏览器环境中如何工作。另外,我相信此API是为不同目的而设计的。

这两个配置均失败:

steps:
  # separate processes
  - run: curl -u "$username:$token" https://api.github.com/user
  - run: git push origin master
steps:
  # same process
  - run: |
      curl -u "$username:$token" https://api.github.com/user
      git push origin master
bash git authorization github-actions
1个回答
0
投票

actions/checkout@v2现在将在设置token输入时配置并保留身份验证。您不需要手动配置原始URL。

      - uses: actions/checkout@v2
        with:
          token: ${{ secrets.PAT }}
      - name: Create a change
        run: echo "test" > test.txt
      - name: Commit change
        run: |
          git config --global user.name 'Your Name'
          git config --global user.email '[email protected]'
          git add -A
          git commit -m "Add test file"
          git push

根据GitHub论坛上的this comment,必须从admin / org所有者帐户创建PAT。具有写访问权的协作者不足以推送到受保护的分支。

© www.soinside.com 2019 - 2024. All rights reserved.