GitHub Api: Как получить Root: tree_sha репозитория? - PullRequest
4 голосов
/ 14 мая 2010

Как получить Root: tree_sha репозитория GitHub через GitHub API?

Справочные страницы API GitHib, похоже, не объясняют эту важную информацию:

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

Может получить содержимое дерева по дереву ША

дерево / показать /: пользователь /: репо /: tree_sha

Чтобы получить список корневого дерева для проект facebox от нашего коммита листинг, мы можем назвать это:

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

Ответы [ 3 ]

4 голосов
/ 05 августа 2014

Каждый коммит содержит ша всего дерева на момент этого коммита. Используйте API для получения объекта JSON, представляющего ветвь master.

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/

3 голосов
/ 14 мая 2010

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

Коммит сообщает вам свое дерево ша.

[EDIT]
Если вы хотите, чтобы дерево sha подпапки cd попало в родительскую папку той, которая вас интересует, и запустите:
git ls-tree HEAD

Если вы хотите корневое дерево ша:
git show HEAD --format=raw
1-я строка имеет коммит sha
2-я строка имеет дерево ша

0 голосов
/ 18 марта 2013

Я не уверен насчет GitHub API - однако, если вам нужен только хеш, вы можете использовать эту команду в своем клоне:

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

Или используйте %t для сокращенного хэша.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...