首页 > 解决方案 > 使用 GitHub API 在一次提交中编辑多个文件

问题描述

我在 C# webapp(使用 Blazor)中使用 GitHub API。我希望能够创建一个提交来添加、删除和编辑存储库文件夹中的多个文件。我知道我可以使用这些内容向 URL 发送 PUT 请求以https://api.github.com/repos/[username]/[repository]/contents/[file]创建文件(我还可以通过添加 SHA 哈希来编辑文件):

{
    "message": "[Commit message]",
    "content": "[Content encoded in base64]",
    "committer": {
        "name": "[Committer name]",
        "email": "[Committer email]"
    }
}

但这会为每个文件更改创建一个提交。有什么方法可以在一次提交中执行多个操作(使用 GitHub API 或其他方式)?我会使用 libgit2sharp 之类的东西,但我不想将存储库克隆到文件系统上的文件夹中。

标签: c#gitgithubgithub-apigit-commit

解决方案


有什么方法可以在一次提交中执行多个操作(使用 GitHub API 或其他方式)?

有可用于从头开始构建提交的底层Git 数据 API :

  • 使用 API 将文件作为blob上传
  • 用于指示存储库状态应该是什么(更新路径以指向新的 blob)
  • 然后使用新的根树和其他元数据创建一个新的提交
  • 如果可以,则更新引用(即分支)以指向此新提交

推荐阅读