gpt4 book ai didi

python - 使用 Python 处理 GitHub Wiki 存储库

转载 作者:太空狗 更新时间:2023-10-29 21:08:54 26 4
gpt4 key购买 nike

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

PyGithub 的帮助下,我可以轻松地将文件直接上传到 MyRepo.git 存储库,但不幸的是,这个库没有使用 MyRepo.wiki.git 存储库的 API 或方法。

以下是我如何将文件上传到 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)

那么,如何我可以做相同但使用 MyRepo.wiki.git 存储库?如果您可以提供一个使用 PyGithub 库的示例 - 那就太棒了。

附言我可以使用 Gollum API 执行此操作吗?

附言没有人使用任何类型的 python 库处理 *.wiki.git 吗?我不相信:(

P.P.P.S.如果我不够清楚:我不想以任何方式创建本地存储库。我只想即时修改 repo 结构——就像我的例子所做的那样。但是有 *.wiki.git 存储库。

谢谢!

最佳答案

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

已编辑

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

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

不存在用于 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()

关于python - 使用 Python 处理 GitHub Wiki 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14587632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com