我如何远程编辑/创建GitHub Repo的wiki

本文关键字:GitHub Repo wiki 创建 何远程 编辑 | 更新日期: 2023-09-27 18:15:37

我正在用c#编写一个应用程序,它提供了一个供开发人员填写的表单。应用程序接收有关存储库(repos)的信息,然后将其放入wiki模板中。格式化并保存到.md文件后,我想将其推送到存储库。我刚把几百个仓库从SVN转换成企业版GitHub,没有一个有wiki。我想给开发人员一个简单的方法来概述代码是什么,它来自哪里,而不需要格式化等。我已经知道了gitaccess和Ruby api。但是,在将wiki推送到repo之前,需要完整的repo克隆。我不想这样。非常感谢任何帮助。谢谢你。

我如何远程编辑/创建GitHub Repo的wiki

这不是一个确切的答案,但它仍然是相关的。您可以使用批处理文件编写推送命令的脚本,然后使用git内置的gitcredentials来处理用户名和密码提示,这应该允许您编写推送wiki页面的整个过程的脚本。详见https://www.kernel.org/pub/software/scm/git/docs/gitcredentials.html

您可以在repo的顶部操作栏中使用Wiki链接。在Wiki区域中,您可以通过单击New Page按钮直接从web创建所需的页面。网页上还有编辑和预览按钮,供您在保存Wiki文档之前查看。

要补充的是,我没有意识到您正在尝试编写您的更改脚本。wiki存在于一个独立的,但与代码库并行的repo中,您不必克隆代码库来获得wiki repo(尽管您确实需要克隆wiki repo)。您可以访问xyz。Git仓库的wiki使用xyz.wiki.git。在Wiki页面上(你已经知道了),当然,你可以通过点击顶部的Git Access按钮获得URL。

如果你真的不能克隆wiki仓库,Git只提供了在Git文档中指定的4种协议。这里有一篇博客文章,讨论了8种共享git存储库的方法,这可能会给你一些线索,让你知道其他方法可以做你想做的事情。

从2023-03年开始,官方不支持在GitHub上以编程方式创建wiki (git)存储库。

GitHub的官方REST API (Version: 2022-11-28)支持创建存储库。然而,如果你想创建一个"维基"对于某些代码存储库,命名为"repository_name";(意思是,您想要创建git存储库"REPOSITORY_NAME.wiki"),将以如下错误结束:

{
  "message": "Repository creation failed.",
  "errors": [
    {
      "resource": "Repository",
      "code": "custom",
      "field": "name",
      "message": "name cannot end in .wiki"
    }
  ],
  "documentation_url": "https://docs.github.com/rest/reference/repos#create-a-repository-for-the-authenticated-user"
}
gh: Repository creation failed. (HTTP 422)

那么,你唯一的机会就是使用GitHub网站的非文档调用来创建wiki存储库:

  • 在你的浏览器上,如果你想手工创建一个wiki,你会看到这是一个调用GET方法的URL模式:https://github.com/YOUR_USERNAME/REPOSITORY_NAME/wiki/_new。这会将您重定向到一个新网站,标题为"创建新页面"。
  • 检查按钮Save page (id: gollum-editor-submit)显示,创建wiki git存储库的底层例程是一个模式为https://github.com/YOUR_USERNAME/REPOSITORY_NAME/wiki的POST方法(web HTML包含一个隐藏的input,名称为authenticity_token;同样,这也没有文档记录,而且很可能会更改)。用正确的输入(我猜还有一些需要的头文件)调用这个方法将创建你想要的新git存储库。
  • 最后,为了稍后从零开始推送你的git存储库,你需要强制:git push -f origin .