GitHub Api:如何获得Root:存储库的tree_sha?

时间:2010-05-14 00:29:43

标签: github github-api

如何通过GitHub API获取GitHub存储库的Root:tree_sha?

GitHib API帮助页面似乎无法解释这一重要信息:

http://develop.github.com/p/object.html

  

可以通过树获取树的内容   SHA

     

树/显示/:用户/:回购/​​:tree_sha

     

获取根树的列表   我们提交的facebox项目   上市,我们可以这样称呼:

     

$ curl   http://github.com/api/v2/yaml/tree/show/defunkt/facebox/a47803c9ba26213ff194f042ab686a7749b17476

3 个答案:

答案 0 :(得分:4)

每次提交都包含该提交的整个树的sha。 使用API​​获取表示master分支的JSON对象。

https://api.github.com/repos/:owner/:repo/branches/master

该分支的最后一次提交包括我认为你要求的树的sha。

这段代码演示了如何在Python中获取head_tree_sha

import requests
token = '0...f'
key = {'Authorization':'token '+token}
master = requests.get('https://api.github.com/repos/'+owner+'/' + repo '/branches/master', headers=key)
master = master.json()
head_tree_sha = master['commit']['commit']['tree']['sha']

https://developer.github.com/v3/git/commits/

答案 1 :(得分:3)

http://develop.github.com/p/commits.html

提交告诉你它的树。

[编辑]
如果你想将子文件夹cd的树形图放入你感兴趣的文件夹的父文件夹中并运行:
git ls-tree HEAD

如果你想要Root tree sha:
git show HEAD --format=raw
第一行有承诺sha 第二行有树沙

答案 2 :(得分:0)

我不确定GitHub API - 但是如果您只想要哈希,可以在克隆中使用此命令:

git show HEAD --format=%T | head -1

或者使用%t作为缩写哈希。