【问题标题】:Edit multiple files in single commit with GitHub API使用 GitHub API 在一次提交中编辑多个文件
【发布时间】:2020-08-18 08:36:03
【问题描述】:

我在 C# webapp(使用 Blazor)中使用 GitHub API。我希望能够创建一个提交来添加、删除和编辑存储库中文件夹中的多个文件。我知道我可以使用这些内容向 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 之类的东西,但我不想将存储库克隆到文件系统上的文件夹中。

【问题讨论】:

    标签: c# git github github-api git-commit


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗨,Brendan,这是否需要(尤其是树步骤)克隆存储库,不是吗?
    猜你喜欢
    • 2013-07-22
    • 2020-10-02
    • 2018-02-19
    • 2016-02-11
    • 2019-01-04
    • 2021-11-13
    • 2014-02-18
    • 2011-05-19
    • 2015-03-02
    相关资源
    最近更新 更多