GitHub api: как эффективно найти количество коммитов для репозитория?

Я хочу найти количество коммитов, выполненных для определенных проектов github, и внутри них для определенных файлов. Я проверил GitHub api docs но только нашел API для фактического возврата всех коммитов. Это было бы очень неэффективно, так как мне нужно сделать несколько вызовов api для подкачки через все коммиты.

У кого-нибудь есть идея получше?

2 ответов


обновление май 2013: см."файл CRUD и статистика репозитория теперь доступны в API"

Теперь вы можете получить последний год фиксации данных деятельности

GET /repos/:owner/:repo/stats/commit_activity

возвращает последний год действия фиксации, сгруппированный по неделям. Массив days-это группа коммитов в день, начиная с воскресенья.

не полностью то, что вы ищете, но ближе.


Оригинал ответ (апрель 2010 года)

нет, текущий API не поддерживает 'log --all для перечисления всех commmits из всех филиалов.

единственная альтернатива представлена в "GitHub API: получить все коммиты для всех ветвей для РЕПО", и список через все страницы всех коммитов,ветку за веткой.

Это кажется настолько громоздким, чем другая альтернатива на самом деле клон РЕПО Github и применить git команды на этом локальном клоне!
(главным образом git shortlog)


Примечание: Вы также можете оформить, что скрипт python создано Arcsector.


С GraphQL API v4, вы можете получить общее количество фиксации на ветку с totalCount для каждого филиала:

{
  repository(owner: "google", name: "gson") {
    name
    refs(first: 100, refPrefix: "refs/heads/") {
      edges {
        node {
          name
          target {
            ... on Commit {
              id
              history(first: 0) {
                totalCount
              }
            }
          }
        }
      }
    }
  }
}

проверьте его в проводнике