在Github Actions中,我试图对与工作流所属的存储库不同的存储库进行一些更改。看到以下代码:
- name: Generate API module
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git clone https://user:$GITHUB_TOKEN@github.com/owner/my-repo # This works
cd my-repo
git config user.name "user"
git config user.email "dev@example.com"
git checkout -b api-version-$COMMIT
touch new-file.sh
git add new-file.sh
git commit -m "Add new file"
git remote -v # Prints:
# origin ***github.com/owner/my-repo.git (fetch)
# origin ***github.com/owner/my-repo.git (push)
git push --set-upstream origin api-version-$COMMIT # This does not work
git push --set-upstream https://user:$GITHUB_TOKEN@github.com/owner/my-repo api-version-$COMMIT # This does not work either
我可以很好地克隆所有者/存储库。我可以签出新分支,添加文件并提交更改。当我尝试将更改推向上游时,就会出现问题。那根本不起作用,我得到这个错误:
remote: Repository not found.
fatal: repository 'https://github.com/owner/my-repo/' not found
我只是猜测它与身份验证有关。 GITHUB_TOKEN
是个人访问令牌,并具有所有可能的权限。
有什么作用?
答案 0 :(得分:1)
GITHUB_TOKEN
也是系统变量,请参见文档here。您的机密与系统之间可能会发生一些冲突。将您的秘密重命名为其他东西可能会起作用。
答案 1 :(得分:0)
不确定您是否能够解决该问题,但我想我会像我一样为将来遇到相同问题的人发布一个潜在的解决方案。
我遇到了同样的问题,最终结果是我试图推送的存储库缺乏编辑权限。
不幸的是,来自 GitHub (remote: Repository not found.
) 的错误消息在指出真正的问题方面确实无济于事(我认为这是出于安全目的的混淆问题,但是 - 如果该帐户已经能够clone
存储库并对其具有读取权限-混淆有什么意义?这显然是已通过身份验证的用户的授权问题??♂️)。
无论哪种方式 - 我都能够通过获得对 repo 的写访问权来解决这个问题。
获得所需的权限后 - 我能够成功推送到该存储库。