Хотя может быть способ рекурсивного запроса всех коммитов в репо, я не смог найти работающего решения.
Вот мое решение
Моя потребность была:
Я только хочу указать даты, когда они были зафиксированы, чтобы оценить общее время, отведенное для этого хранилища (что-то вроде git-часов)
Поскольку я не мог запросить полную историю коммитов, мне пришлось исходить из предположения, что добавленное время для последних 100 коммитов такое же, как и для любых 100 коммитов.
Запрос данных из API GitHub GraphQL
- история коммитов
totalCount
-
committedDate
из последних 100 коммитов
{
repository(owner: "facebook", name: "react") {
object(expression: "master") {
... on Commit {
history {
totalCount
nodes {
committedDate
}
}
}
}
}
}
Запустите сегодня, запрос вернет:
{
"data": {
"repository": {
"object": {
"history": {
"totalCount": 10807,
"nodes": [
{
"committedDate": "2019-04-04T01:15:33Z"
},
{
"committedDate": "2019-04-03T22:07:09Z"
},
{
"committedDate": "2019-04-03T20:21:27Z"
},
// 97 other committed dates
]
}
}
}
}
}
Оценка общего внесенного времени
Я подсчитал время, потраченное на последние 100 коммитов, используя алгоритм, аналогичный описанному в git-hours
README .
Затем я масштабировал его до totalCount
:
const timeContributedTotal = timeContributedLatest100 * totalCount / 100;
Я подсчитал, что на Bootstrap в Твиттере на сегодняшний день было занято 13152 часа, а git-hours
- примерно 9959 часов 7 месяцев назад. Звучит неплохо.
Что касается React, я получаю в общей сложности 15097 часов или 629 дней.
Оценка очень приблизительная, но она настолько близка, насколько я могу найти то, что мне нужно. Не стесняйтесь комментировать или отвечать, если вы видите какое-либо возможное улучшение.