如何使用本地File.txt作为参数更新GitHub仓库中的文件
实现方法
你只需要提前读取本地File.txt的完整内容,将读取到的内容作为NEW_CONTENT参数传入update_file接口,即可实现GitHub远程文件被本地文件内容全量替换。
可直接运行的修改后代码
from github import Github # 替换为你自己的配置项 ACCESS_TOKEN = "你的GitHub个人访问令牌" REPO_NAME = "目标仓库名,格式为「所有者/仓库名」" GITHUB_FILE_PATH = "待更新文件在仓库内的相对路径" BRANCH_NAME = "要提交到的分支名称" COMMIT_MSG = "本次提交的说明信息" LOCAL_FILE_PATH = "File.txt" # 本地待上传文件的路径,和脚本同目录可直接写文件名 # 初始化Github实例、获取仓库对象 g = Github(ACCESS_TOKEN) repo = g.get_repo(REPO_NAME) file = repo.get_contents(GITHUB_FILE_PATH, ref=BRANCH_NAME) # 读取本地文件全部内容 with open(LOCAL_FILE_PATH, "r", encoding="utf-8") as f: local_file_content = f.read() # 执行远程文件更新 repo.update_file( path=file.path, message=COMMIT_MSG, content=local_file_content, sha=file.sha, branch=BRANCH_NAME )
注意事项
- 普通文本文件读取时指定
encoding="utf-8"可以避免绝大多数乱码问题;如果是图片、压缩包这类二进制文件,把文件打开模式改成"rb"即可,直接传入读取到的二进制内容,PyGithub会自动做适配处理 - 如果远程目标文件不存在,不要调用
update_file,替换为repo.create_file()方法即可完成新建+写入 - 调用
get_contents时传入ref=BRANCH_NAME可以避免默认拉取主分支内容、导致sha校验不通过提交失败的问题
内容的提问来源于stack exchange,提问作者Salmaan Ali
相关产品推荐
相关产品推荐

