2013-04-10 31 views
13

Tôi muốn tìm số cam kết được thực hiện đối với các dự án github cụ thể và bên trong chúng với các tệp cụ thể. Tôi đã kiểm tra số github api docs nhưng chỉ tìm thấy một API để thực sự trả về tất cả các cam kết. Điều này sẽ rất không hiệu quả vì tôi phải thực hiện nhiều cuộc gọi api để phân trang qua tất cả các cam kết.github api: Cách tìm hiệu quả số lượng cam kết cho một kho lưu trữ?

Bất kỳ ai có ý tưởng tốt hơn?

+0

Xem câu trả lời của tôi cập nhật. – VonC

+0

@drorw Xin chào, bạn có thể cho tôi biết cách bạn tích hợp mã thông báo truy cập không? – user6456773

Trả lời

9

Cập nhật tháng 5 năm 2013: xem "File CRUD and repository statistics now available in the API"

Bạn bây giờ có thể Get the last year of commit activity data

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

Trả về năm cuối cùng của cam kết hoạt động nhóm theo tuần. Mảng ngày là một nhóm các cam kết mỗi ngày, bắt đầu từ Chủ Nhật.

Không hoàn toàn hoàn toàn những gì bạn đang tìm kiếm, nhưng gần hơn.


câu trả lời gốc (April 2010)

Không, API hiện tại không hỗ trợ một 'log --all' niêm yết tất cả commmits từ tất cả các chi nhánh.

Cách thay thế duy nhất được trình bày trong "Github API: Retrieve all commits for all branches for a repo" và liệt kê tất cả các trang của tất cả các cam kết, chi nhánh sau chi nhánh.

Điều này có vẻ quá cồng kềnh so với một giải pháp thay thế khác thực sự sẽ là sao chép repo Github và apply git commands on that local clone!
(chủ yếu là git shortlog)

+0

Cảm ơn câu trả lời, hy vọng API sẽ được cải thiện một thời gian – drorw

+2

@drorw Nếu bạn có đề xuất cụ thể hoặc yêu cầu tính năng liên quan đến API, bạn nên e-mail hỗ trợ GitHub và cho họ biết: https://github.com/liên hệ –

+0

Cảm ơn bạn đã cập nhật, chắc chắn gần hơn – drorw

1

Với GraphQL API v4, bạn có thể nhận được tổng số cam kết đếm mỗi chi nhánh với totalCount cho từng ngành:

{ 
    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

Các vấn đề liên quan