2013-04-10 8 views
13

특정 github 프로젝트에 대해 수행 된 커밋 수와 특정 파일에 대한 커밋 수를 확인하고자합니다. github api docs을 확인했지만 실제로 모든 커밋을 반환하는 API 만 발견했습니다. 이것은 모든 커밋을 통해 페이징 호출을 여러 번해야하기 때문에 매우 비효율적입니다.github api : 저장소의 커밋 수를 효율적으로 찾는 방법은 무엇입니까?

누구나 더 좋은 아이디어가 있습니까?

+0

내 업데이트 된 대답을 참조하십시오. – VonC

+0

@drorw 안녕하세요, 액세스 토큰을 어떻게 통합했는지 말씀해 주시겠습니까? – user6456773

답변

9

업데이트 할 수 있습니다 2013 : 이제 할 수 Get the last year of commit activity data

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

는 주별로 그룹화 커밋 활동의 작년를 돌려 "File CRUD and repository statistics now available in the API"

를 참조하십시오. days 배열은 일요일에 시작하는 커밋 그룹입니다.

아니요 완전히 당신이 찾고있는 것이지만 가까운 것.


원래 대답 (2010 년 4 월)

아니, 현재의 API가 모든 지점에서 모든 commmits 목록에 대한 'log --all'를 지원하지 않습니다.

유일한 대안은 "Github API: Retrieve all commits for all branches for a repo"이며 모든 커밋 페이지 브랜치 () 이후의 모든 페이지를 나열하십시오.

이것은 실제로 다른 방법보다 성가신 것 같습니다 복제 Github 레포 및 apply git commands on that local clone!
GraphQL API v4으로 (주로 git shortlog)

+0

답변을 주셔서 감사합니다. API가 어느 정도 개선되기를 바랍니다. – drorw

+2

@drorw API에 관한 제안이나 기능 요청이있는 경우 GitHub 지원팀에 이메일을 보내어 다음과 같이 알려 주시기 바랍니다. https://github.com/연락처 –

+0

업데이트 해 주셔서 감사합니다. 확실히 – drorw

1

, 각 지점에 대한 totalCount으로 지점 당 총 커밋 수를 얻을 수 있습니다 :

{ 
    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

관련 문제