11

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

GitHib API 帮助页面似乎没有解释这条关键信息:

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

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

树/show/:user/:repo/:tree_sha

要从我们的提交列表中获取 facebox 项目的根树列表,我们可以这样调用:

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

4

3 回答 3

10

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

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

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

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

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/

于 2014-08-04T22:04:05.410 回答
5

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

提交告诉你它的树 sha。

[编辑]
如果您希望将子文件夹 cd 的树 sha 放入您感兴趣的父文件夹并运行:
git ls-tree HEAD

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

于 2010-05-14T09:40:38.933 回答
1

我不确定 GitHub API——但是如果你只想要哈希,你可以在你的克隆中使用这个命令:

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

%t用于缩写哈希。

于 2013-03-18T06:02:04.723 回答