2013-04-10 21 views
13

Chcę znaleźć liczbę zatwierdzeń wykonanych dla konkretnych projektów Github, a także w nich określonych plików. Sprawdziłem numer github api docs, ale znalazłem tylko API, które faktycznie zwraca wszystkie zatwierdzenia. Byłoby to bardzo nieefektywne, ponieważ musiałem wykonywać wiele wywołań api dla stronicowania przez wszystkie zatwierdzenia.github api: Jak skutecznie znaleźć liczbę zatwierdzeń dla repozytorium?

Ktoś ma lepszy pomysł?

+0

Zobacz moją zaktualizowaną odpowiedź. – VonC

+0

@drorw Witam, czy możesz mi powiedzieć, jak zintegrowałeś token dostępu? – user6456773

Odpowiedz

9

Aktualizacja maj 2013: patrz "File CRUD and repository statistics now available in the API"

Teraz można Get the last year of commit activity data

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

Zwraca ostatni rok popełnienia aktywności spis tygodnia. Tablica dni to grupa zatwierdzeń dziennie, zaczynając od niedzieli.

Nie całkowicie czego szukasz, ale bliżej.


Original odpowiedź (kwiecień 2010)

Nie, obecny API nie obsługuje 'log --all' dla wymieniając wszystkie commmits ze wszystkich branż.

Jedyną alternatywą jest przedstawiona w "Github API: Retrieve all commits for all branches for a repo" i lista wszystkich stron wszystkich zatwierdzeń, oddział po oddziale.

Wydaje się to tak kłopotliwe, że inna alternatywa byłaby w rzeczywistości klonem repozytorium Github i apply git commands on that local clone!
(głównie git shortlog)

+0

Dziękuję za odpowiedź, mam nadzieję, że interfejs API poprawi się w pewnym momencie. – drorw

+2

@drorw Jeśli masz konkretne sugestie lub propozycje funkcji dotyczące interfejsu API, powinieneś wysłać e-mail do pomocy technicznej GitHub i powiadomić go: https://github.com/contact –

+0

Dzięki za aktualizację, zdecydowanie bliżej – drorw

1

Z GraphQL API v4, można uzyskać całkowitą popełnienia liczyć na gałąź z totalCount dla każdego oddziału:

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

Test it in the explorer

Powiązane problemy