github.GithubException.UnknownObjectException: 404 {"message": "Not Found",

github.GithubException.UnknownObjectException: 404 {"message": "Not Found",

完整错误:

File "/opt/hostedtoolcache/Python/3.9.6/x64/lib/python3.9/site-packages/github/Repository.py", line 2154, in update_file
    headers, data = self._requester.requestJsonAndCheck(
  File "/opt/hostedtoolcache/Python/3.9.6/x64/lib/python3.9/site-packages/github/Requester.py", line 353, in requestJsonAndCheck
    return self.__check(
  File "/opt/hostedtoolcache/Python/3.9.6/x64/lib/python3.9/site-packages/github/Requester.py", line 378, in __check
    raise self.__createException(status, responseHeaders, output)
github.GithubException.UnknownObjectException: 404 {"message": "Not Found", "documentation_url": "https://docs.github.com/rest/reference/repos#create-or-update-file-contents"}
Error: Process completed with exit code 1.

我正在尝试 运行 我的 github 存储库中的一个脚本,使用 github 工作流更新一个包含新内容的文件。

代码如下:

g = Github(token)
repo = g.get_repo(repoName)
oldFile = repo.get_contents(oldFilePath)
repo.update_file(oldFile.path, "update file", updatedFile, oldFile.sha, branch="main")

注意:脚本、.yml 工作流文件和正在更新的文件都在同一个 repo 中。当我在本地机器上 运行 时,同样的代码 运行 很顺利。但是当它通过 Github 工作流程 运行ning 时发生错误。

.yml代码:

- name: run .py file
    run: python script.py

另请注意:github 令牌是通过 os.environ.get(TOKEN_SECRET_NAME)

从脚本访问的

您没有将秘密令牌作为环境传递。试试下面的代码

   - name: run .py file
     run: python script.py
     env:
        TOKEN_SECRET_NAME: ${{ secrets.token }}