问题是,假设我在Github上有一个私人项目,我想让这个项目的README.md与Flutter repo或React repo等开源项目同步。我怎么能用GitHub机器人或.yaml来做到这一点,每次我提交到我的回购时都会运行它?
我不在乎解决方案是否会在我的回购中提交,或者类似的事情,我只想找到一种方法来保持这个文件的同步。
如果将python脚本作为cronjob运行是一种可接受的解决方案,则可以使用带有包装器PyGithub的GitHub API。然后,您可以决定运行该脚本的频率,并且不需要通过在回购中执行操作来触发该脚本。请参阅下面的快速示例。
from github import Github
g = Github("access_token")
#Get the repo you want to commit to
repo = g.get_repo("account_name/repo_name")
#Get the version of the file you want to commit to your repo.
#Below assumes you have file locally relative to where you run this script
#See here from getting it from a URL: https://stackoverflow.com/a/28613470/6889416
file_content = open('local_path/README.md', 'rb').read()
#Get the commit sha from the current state of the file
sha = repo.get_contents("README.md").sha
#Update the README file
update = my_repo.update_file("README.md","Update README.md",file_content,sha,branch="main")
我用代码为我使用的每个Git/GitHub培训设置了相同的repo。如果您想查看完整的代码,请参阅此处。