我發現GitHub有Create Tree和Create File API,但我仍然不確定如何爲Create Tree Api創建子模塊項目,如何爲創建文件指定Sha, Api,看來我們不能設置項目類型。順便說一句,我需要先創建.gitmodules文件嗎?如何在GitHub中使用GitHub Rest Api創建子模塊
2
A
回答
4
今天早些時候我試圖做到這一點。
這是我的工作流程:
讓我舉一個小例子,以使其更清晰。
說你想要添加子模塊的倉庫的master
分支上的最新提交是$BASE_SHA
。
1.創建一個樹
假設你沒有對你的回購的子模塊,然而,你需要創建一個名爲.gitmodules
第一個文件。然後你可以創建一個對它的引用。
POST /repos/:owner/:repo/git/trees
{
"base_tree": $BASE_SHA,
"tree": [
// create submodule config
{
"path": ".gitmodules",
"mode": "100644",
"type": "blob",
"content": "[submodule \"rails\"]\n\tpath = rails\n\turl = https://github.com/rails/rails"
},
// link to submodule
{
"path": "rails",
"mode": "160000",
"type": "commit",
"sha": "39e087cbf5628ecc351fc86a3a1e320be193bf29"
}
]
}
的API服務器將發送給您迴應
{
"sha": $TREE_SHA,
"url": "...",
"tree": [...]
}
2.創建一個提交
然後,我們用的的sha
新創建的樹吃掉一個提交(以$BASE_SHA
作爲其父)。
POST /repos/:owner/:repo/git/commits
{
"message": "commit message",
"tree": $TREE_SHA,
"parents": [$BASE_SHA]
}
,服務器將返回
{
"sha": $COMMIT_SHA,
"url": "...",
// other content omitted here ..
}
3.更新參考
然後,我們需要更新master
。
PATCH /repos/:owner/:repo/git/refs/heads/master
{
"sha": $COMMIT_SHA,
"force": true
}
如果不返回錯誤,我們都設定。
刷新你的GitHub回購頁面,你會發現添加了子模塊。
+0
謝謝程宇,偉大的工作。只有一件事我發現可能需要修改的是請求方法應該是「POST」在創建一棵樹 – Huachao
+0
鷹眼!剛剛更新了我的答案,謝謝指出。 –
相關問題
- 1. 創建使用GitHub的API
- 2. 如何通過github API在github中創建存儲庫?
- 3. 如何創建包含子模塊的Github版本?
- 4. 如何結算SVN的GitHub子模塊
- 5. 子模塊不能在github中單擊
- 6. GitHub創建REST API問題與創建者參數
- 7. GitHub的問題創建API
- 8. Github v3 API - 創建REPO
- 9. Github的API創建提交
- 10. github api v3創建樹php
- 11. 如何在Postman中使用GitHub API
- 12. Github服務(Jenkins)使用Rest API
- 13. 使用Github API創建webhook無法在Django中使用請求
- 14. Git:推新創建的本地子模塊高達Github和Bitbucket
- 15. Github引用子模塊 - 錯誤的樹
- 16. 如何使用android studio將子模塊推送到github?
- 17. 如何在github中創建.md文件?
- 18. 如何使用GitHub API在GitHub上發佈問題
- 19. 創建在github上
- 20. 子模塊在github頁面中的行爲如何?
- 21. 如何在GitHub中定位子模塊的提交?
- 22. 如何使用GitHub API v3創建提交併推入回購?
- 23. 如何使用GitHub API創建「修訂頁面」?
- 24. 如何使在Github上發佈關於創建(API)
- 25. 如何在github上
- 26. 使用github api在javascript/jquery中創建一個鏈接
- 27. 如何使用Github?
- 28. 使用GitHub的API
- 29. 如何使用Python使用Github GraphQL API?
- 30. GitHub v3 API - 如何在存儲庫中創建初始提交?
你應該提到你試過了什麼。如果你的谷歌爲你的問題,你會發現第一個結果 - https://developer.github.com/v3/git/trees/ –