2013-04-12 9 views
28

Mam osobistego bloga, który zbudowałem przy użyciu szyn. Chcę dodać sekcję do mojej witryny, która wyświetla moją bieżącą passę wkładów Github. Jaki byłby najlepszy sposób na zrobienie tego?Jak mogę dodać "bieżące pasmo" wkładu github do mojego bloga?

edit: dla wyjaśnienia, tutaj jest to, co chcę:

enter image description here

tylko liczba dni jest wszystko, co jest konieczne dla mnie.

Odpowiedz

37

Uwzględniając GitHub API for Users jeszcze nie narażać tej konkretnej informacji (liczba dni dla bieżącego strumienia składek), może trzeba:

  • zeskrobać go (wyodrębnić go czytając stronę GitHub użytkownika)
    Jak klamping wspomina w his answer (upvoted), adres URL do złomu byłoby:
    https://github.com/users/<username>/contributions_calendar_data
    https://github.com/users/<username>/contributions
    (dla transakcji repo publicznych tylko, choć)

    SherlockStd ma poniżej updated (May 2017) parsing code:

    https://github-stats.com/api/user/streak/current/:username 
    
  • projekty próbują którego używasz https://github.com/users/<username>/contributions_calendar_data (wymienionych w 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 jest prosty skrypt do widoku kalendarza zobowiązuje (podobny do GitHub wpisów kalendarza) w wierszu poleceń.
Każdy blok na wykresie odpowiada jednemu dniu i jest cieniowany jednym z 5 możliwych kolorów, z których każdy reprezentuje względną liczbę zatwierdzeń danego dnia.

  • lub ustanowić usługę, która będzie raportu, każdy dzień, każda nowa zobowiązać do tego danego dnia do Kalendarza Google (przy użyciu API Kalendarz Google w ramach projektu jak nf/streak).
    Możesz następnie odczytać te informacje i zgłosić je na swoim blogu.

Google Calendar streak


Można znaleźć różne przykład skrobanie te informacje:

Jak w:

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

odczuwalna:

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 
  • ... (masz pomysł)
+0

Przestarzałe, spójrz na [mój komentarz] (http://stackoverflow.com/questions/15978845/how-can-i-add-current-streak-of-contributions-from-gitub-to-my-blog/ 44007340 # 44007340) – SherlockStd

17

URL dla zwykłego danych JSON był: https://github.com/users/[username]/contributions_calendar_data [Edit: Wygląda na to URL już nie działa)

Jest URL, który generuje SVG, które zostały wskazane inne odpowiedzi. To tutaj: https://github.com/users/[username]/contributions

Po prostu zastąp [nazwa użytkownika] swoją nazwą użytkownika gitub w adresie URL, a powinieneś zobaczyć wykres. Zobacz inne odpowiedzi, aby uzyskać więcej szczegółowych wyjaśnień.

+4

+1. Dobry połów! Odniosłem się do tego w mojej odpowiedzi. – VonC

+0

dane, które przychodzą, są przeznaczone tylko do publicznych repozytoriów. – AnkitG

+1

Czy to już jest przestarzałe? –

2

Jeśli chcesz coś, co pasuje do wyglądu GitHub, sprawdź te projekty, które używają https://github.com/users/<username>/contributions_calendar_data, ale także zastosuj inne czynniki oparte na logice Githuba.

+0

+1. miłe znalezisko. Uwzględniłem te projekty w powyższej odpowiedzi, aby uzyskać większą widoczność. – VonC

2

Od URL https://github.com/users/<username>/contributions_calendar_data już nie działają, trzeba analizować SVG z https://github.com/users/<username>/contributions.

Niestety, Github kocha bezpieczeństwo, a CORS jest wyłączony na swoim serwerze.

Aby rozwiązać ten problem, mam ustawić API dla mnie, a każdy, kto tego potrzebuje, tylko GET https://github-stats.com/api/user/streak/current/{username} (CORS dozwolone), a dostaniesz i odpowiedzieć jak:

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

https://github-stats.com wkrótce wdrożyć więcej punktów końcowych statystyk :)

Proszę pytać o nowy punkt końcowy pod numerem https://github.com/SherlockStd/github-stats.com/issues, z przyjemnością znajdę sposób na ich wdrożenie!

+0

Ładnie wykonane. +1. W mojej odpowiedzi umieściłem link do Twojego postu, aby uzyskać lepszą widoczność. – VonC

+0

@VonC dziękuję! – SherlockStd

+0

Ale to nie działa w rzeczywistości z powodu CORS, więc wdrażam serwer do tego, że będę publikować URL dziś wieczorem – SherlockStd

Powiązane problemy