代码之家  ›  专栏  ›  技术社区  ›  jeanpaul62

提交到Github API而不克隆repo

  •  2
  • jeanpaul62  · 技术社区  · 6 年前

    我想在git repo中更改一个文件, 通过浏览器 .

    我自然会去 Github API 看看我能做什么。这个 Create a commit 终结点需要树对象的哈希。有没有办法在浏览器中生成此树哈希?

    我的回购协议大约为100Mb,因此在浏览器中克隆它是不可行的。有没有办法克隆一个子文件夹(稀疏签出),然后计算新的树哈希,全部在浏览器中(在浏览器工具中使用git,如 isomorphic-git )?

    Github有一个UI,可以手动编辑webapp中的文件。我正试图在我自己的webapp中重新创建相同的东西。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Ortomala Lokni    6 年前

    不需要克隆存储库。这个 Git Database API documentation 提供进行新提交所需的步骤:

    • 获取当前提交对象
    • 检索它指向的树
    • 检索树对该特定文件路径具有的blob对象的内容
    • 以某种方式更改内容,并使用该新内容发布一个新blob对象,以获取blob SHA
    • 发布一个新的树对象,并将该文件路径指针替换为新的blob SHA以获取树SHA
    • 创建一个新的commit对象,将当前的commit SHA作为父对象,并使用新的树SHA,获取一个commit SHA
    • 更新分支的引用以指向新的提交SHA