2013-04-12 33 views
28

Tôi có một blog cá nhân mà tôi đã tạo bằng cách sử dụng đường ray. Tôi muốn thêm một phần vào trang web của mình, hiển thị chuỗi đóng góp github hiện tại của tôi. Điều gì sẽ là cách tốt nhất để làm điều này?Làm cách nào để thêm "các vệt hiện tại" của các đóng góp từ github vào blog của tôi?

chỉnh sửa: để làm rõ, đây là những gì tôi muốn:

enter image description here

chỉ số ngày là tất cả những gì cần thiết cho tôi.

Trả lời

37

Xét GitHub API for Users vẫn chưa tiếp xúc với những thông tin cụ thể (số ngày đối với dòng hiện tại của các khoản đóng góp), bạn có thể phải:

  • cạo nó (giải nén nó bằng cách đọc trang GitHub của người dùng)
    Như klamping đề cập trong his answer (upvoted), url để phế liệu sẽ là:
    https://github.com/users/<username>/contributions_calendar_data
    https://github.com/users/<username>/contributions
    (đối với hợp đồng mua lại công cộng duy nhất, mặc dù)

    SherlockStdupdated (May 2017) parsing code dưới đây:

    https://github-stats.com/api/user/streak/current/:username 
    
  • dự án thử mà đang sử dụng https://github.com/users/<username>/contributions_calendar_data (được liệt kê trong Marques Johansson 's answer, upvoted)

git-stats

https://github.com/akerl/githubchart

https://raw.github.com/k4rthik/git-cal/master/screenshots/img1.png

git-cal là một kịch bản đơn giản để xem cam kết lịch (tương tự như GitHub đóng góp lịch) trên dòng lệnh.
Mỗi khối trong biểu đồ tương ứng với một ngày và được tô bóng bằng một trong 5 màu có thể, mỗi khối đại diện cho số cam kết tương đối vào ngày đó.

  • hoặc thiết lập một dịch vụ mà sẽ báo cáo, mỗi ngày, bất kỳ mới cam kết cho ngày hôm đó trao cho một Google Calendar (sử dụng API Lịch Google thông qua một dự án như nf/streak).
    Sau đó, bạn có thể đọc thông tin đó và báo cáo thông tin đó trong blog của mình.

Google Calendar streak


Bạn có thể tìm thấy ví dụ khác nhau của cào thông tin rằng:

Như trong:

$.getJSON('https://github.com/users/' + location.pathname.replace(/\//g, '') + '/contributions_calendar_data', weekendWork); 

Giống như:

leaderboard = members.map do |u| 
    user_stats = get("https://github.com/users/#{u}/contributions_calendar_data") 
    total = user_stats.map { |s| s[1] }.reduce(&:+) 
    [u, total] 
end 
  • ... (bạn có được ý tưởng)
+0

Lỗi thời, xem [nhận xét của tôi] (http://stackoverflow.com/questions/15978845/how-can-i-add-current-streak-of-contributions-from-github-to-my-blog/ 44007340 # 44007340) – SherlockStd

17

URL cho các dữ liệu JSON đồng bằng : https://github.com/users/[username]/contributions_calendar_data [Edit: Hình như URL này không còn hoạt động)

Có một URL mà tạo ra SVG, mà câu trả lời khác đã chỉ ra. Đó là ở đây: https://github.com/users/[username]/contributions

Chỉ cần thay thế [tên người dùng] bằng tên người dùng github của bạn trong URL và bạn sẽ có thể xem biểu đồ. Xem các câu trả lời khác để có giải thích chi tiết hơn

+4

+1. Nắm bắt tốt! Tôi đã tham chiếu nó trong câu trả lời của tôi. – VonC

+0

dữ liệu đến chỉ dành cho repos công cộng. – AnkitG

+1

Điều này có lỗi thời không? –

2

Nếu bạn muốn một cái gì đó phù hợp với giao diện trực quan của biểu đồ GitHub, hãy xem các dự án sử dụng https://github.com/users/<username>/contributions_calendar_data mà còn áp dụng các yếu tố khác dựa trên logic của Github.

+0

+1. tìm tốt. Tôi đã bao gồm các dự án đó trong câu trả lời của tôi ở trên để có nhiều khả năng hiển thị hơn. – VonC

2

Kể từ URL https://github.com/users/<username>/contributions_calendar_data không làm việc nữa, bạn phải phân tích SVG từ https://github.com/users/<username>/contributions.

Thật không may, Github yêu bảo mật và CORS bị tắt trên máy chủ của họ.

Để giải quyết vấn đề này, tôi đã thiết lập một API cho tôi và tất cả những ai cần nó, chỉ cần GET https://github-stats.com/api/user/streak/current/{username} (CORS phép), và bạn sẽ nhận được và trả lời như sau:

{ 
    "success":true, 
    "currentStreak": 3 
} 

https://github-stats.com sẽ sớm thực hiện nhiều số liệu thống kê điểm cuối :)

Vui lòng yêu cầu điểm cuối mới tại https://github.com/SherlockStd/github-stats.com/issues, sẽ rất vui khi tìm cách triển khai chúng!

+0

Thực hiện tốt. +1. Tôi đã bao gồm một liên kết đến bài viết của bạn trong câu trả lời của tôi, cho khả năng hiển thị nhiều hơn. – VonC

+0

@VonC cảm ơn bạn! – SherlockStd

+0

Nhưng nó không làm việc thực sự vì CORS vì vậy tôi đang triển khai một máy chủ cho điều này tôi sẽ đăng URL tối nay – SherlockStd

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