使用Python使用GitHub Wiki存储库

时间:2013-01-29 16:35:15

标签: python github gollum-wiki dulwich

有没有办法以编程方式(使用 PyGithub GitPython dulwich )将任何文件加载到MyRepo.wiki.git存储库中?当然,使用Python。

我可以在 MyRepo.git 的帮助下轻松将文件上传到PyGithub存储库,但遗憾的是,此库没有API或使用方法{{ 1}}存储库。

以下是我如何将文件上传到MyRepo.wiki.git存储库:

MyRepo.git

那么, 如何相同 github_repo = github_account.get_user().get_repo('MyRepo') head_ref = gh_repo.get_git_ref("heads/%s" % github_branch) latest_commit = gh_repo.get_git_commit(head_ref.object.sha) base_tree = latest_commit.tree new_tree = gh_repo.create_git_tree( [github.InputGitTreeElement( path="test.txt", mode='100755' if github_executable else '100644', type='blob', content="test" )], base_tree) new_commit = gh_repo.create_git_commit( message="test commit message", parents=[latest_commit], tree=new_tree) head_ref.edit(sha=new_commit.sha, force=False) 存储库?如果你能提供一个使用PyGithub库的例子 - 它真的很棒。

P.S。我可以使用Gollum API吗?

P.P.S。没有人使用任何类型的python库与MyRepo.wiki.git合作吗?我不相信:(

P.P.P.S。如果我不够清楚:我不想以任何方式创建本地存储库。我只想动态修改repo结构 - 就像我的例子那样。但是使用* .wiki.git存储库。

谢谢!

1 个答案:

答案 0 :(得分:3)

你无法通过github web API访问github wiki,PyGithub独家使用它。但是你可以将你的GitPython指向wiki的git URL。之后,您可以像使用任何其他仓库一样访问此git仓库中的文件。

<强>被修改

正如您所指出的,您限制自己不要创建我建议遵循的git存储库的本地克隆:

阅读https://github.com/github/gollum/blob/master/lib/gollum/frontend/app.rb中的代码,该代码可能定义了所有外部HTTP接口。

不适用于Python的一个很好的包装器。但是当你创建一个(部分)而不是我建议使用这里提到的REST客户端库时:https://stackoverflow.com/questions/2176561/which-is-the-best-python-library-to-make-rest-request-like-put-get-delete-pos

如果你现在想,你的限制可以改变:

documentation提供了一个很好的教程,涵盖了一点需要的一点git知识。归结为:

import git
repo = git.Repo.clone_from("git@github.com:user/project.wiki.git", "some-path")
repo.index.add(["your-new-file"])
repo.index.commit("your message to the world")
repo.remotes.origin.push()