【问题标题】:is it possible to clone, commit/push and update the code in github using github REST API?是否可以使用 github REST API 克隆、提交/推送和更新 github 中的代码?
【发布时间】:2021-11-08 15:10:33
【问题描述】:

我要求它了解 github API 以及它对我们所做的操作的使用,例如检查代码、提交文件/更改代码等,

【问题讨论】:

    标签: github github-api


    【解决方案1】:

    虽然使用现有解决方案(例如库)会容易得多,但使用 REST API 可以做到这一点。由于这个问题包含多个步骤,让我们将它们分解。

    1。克隆存储库

    正如this 回答中所述,无法使用 GitHub REST API 直接克隆,但是您可以使用 REST API 下载存储库或获取克隆 url 并手动克隆。

    2。提交并推送到远程

    这是可能的,尽管它比使用现有库要复杂得多。 API 的 Git Database 部分定义了一个 set of steps 来提交对文件的更改,该文件可用作进行一般提交的起点。

    1. 获取当前提交对象
    2. 检索它指向的树
    3. 检索树针对该特定文件路径具有的 blob 对象的内容
    4. 以某种方式更改内容并发布包含该新内容的新 blob 对象,从而获取 blob SHA 回复
    5. 发布一个新的树对象,并将该文件路径指针替换为您的新 blob SHA 获取树 SHA 回复
    6. 以当前提交 SHA 作为父级和新树 SHA 创建一个新提交对象,获取一个提交 SHA
    7. 更新分支的引用以指向新的提交 SHA

    This answer 展示了 Python 中的一个实现,但在每个步骤中都包含了请求。

    【讨论】:

    • ,谢谢指教,但最好通过postman API测试有实际的了解。请与我分享一些关于我可以在哪里检查的数据。我很擅长 Clone API,但需要更多地了解 Commit
    • 我链接的answer 按顺序排列了所有请求。如果您愿意,我可以将它们与解释一起添加到我的答案中,但我以前没有使用过邮递员,也不知道邮递员 api 测试是什么或它会有什么帮助。您是否有某个特定的部分在苦苦挣扎?
    猜你喜欢
    • 2013-08-04
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 2022-09-29
    • 2012-07-24
    • 2021-11-11
    相关资源
    最近更新 更多