使用GitHub API一次提交编辑多个文件

k10s72fa  于 2023-01-15  发布在  Git
关注(0)|答案(2)|浏览(256)

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

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

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

mbjcgjjk

mbjcgjjk1#

有没有什么方法可以让我在一次提交中执行多个操作(使用GitHub API或其他方法)?
有一个底层的Git Data API可以用来从头构建一个提交:

  • 使用API将文件上载为blobs
  • trees用于指示存储库状态应该是什么(更新路径以指向新的blob)
  • 然后使用新的根树和附加元数据创建新的commit
  • 如果可以,则更新reference(即分支)以指向此新提交
taor4pac

taor4pac2#

您可以使用Git Flow和GitHub API:
1.通过创建一个ref(例如refs/heads/myNewBranch)来创建一个新分支,使用您想要的任何基础分支的SHA。
1.在该分支中进行内容更改(创建/更新或删除文件)。确保将branch参数设置为新的分支名称。
1.使用新分支作为头创建拉取请求。
1.使用merge_method的“squash”合并拉取请求,这会将来自各个内容更改API调用的所有提交压缩为一个提交,并使用您选择的提交消息。

相关问题