Czy istnieje sposób na uzyskanie statystyk pobierania / klonowania repozytorium Git?

81

Czy istnieje sposób, aby dowiedzieć się, ile razy repozytorium git zostało sklonowane lub pobrane z github? Byłem po prostu zaciekawiony, ponieważ znalazłem inne statystyki, takie jak czasy zatwierdzeń, linie kodów z kamery generowane za pomocą: http://gitstats.sourceforge.net/, ale nie znalazłem, jak sprawdzić liczbę klonów / pobrań.

Shreyas Karnik
źródło
Czy chciałbyś dowiedzieć się, ile razy repozytorium zostało zamiast tego rozwidlone ? Ponieważ jest to zdecydowanie wykonalne.
1
Teraz możesz zobaczyć liczbę klonów : zobacz Jak uzyskać statystyki GitHub Clone?
VonC
1
możliwy duplikat Jak uzyskać statystyki GitHub Clone?
sumid

Odpowiedzi:

31

Klonowanie jest operacją tylko do odczytu, oryginalne repozytorium nie jest modyfikowane. Nie ma możliwości pobrania statystyk dla danych, które po prostu nie są śledzone.

meagar
źródło
24
Cóż, byłoby możliwe śledzenie go poza gitem, logując się na poziomie mechanizmu transportowego. Na przykład, jestem prawie pewien, że dzienniki gitolite dostarczyłyby wystarczającej ilości informacji, aby wydedukować klony (chociaż myślę, że mogą one nie być odróżnialne od pobierania wszystkich referencji w inny sposób? Ale oczywiście nie masz dostępu do tego typu rzeczy z github, nawet jeśli istnieje.
Cascabel,
Nieważne, że klony to pełne repozytoria, które można sklonować. Sprawdzanie, ile razy dane wystąpienie repozytorium zostało sklonowane, nie byłoby przydatne do ustalenia, ile osób sklonowało je uniwersalnie.
meagar
29
Tak, z pewnością nigdy nie byłaby to wiarygodna statystyka, ale na przykład mogłem zobaczyć projekt open source, który byłby ciekawy przynajmniej rzędu wielkości oszacowania, ile osób może budować od mistrza rozwoju zamiast stabilnych migawek.
Cascabel,
1
Myślę, że mogliby po prostu zarejestrować liczbę żądań klonów git; a nawet lepiej, te żądania, które faktycznie kończą pobieranie.
Aquarius Power
84

Teraz jest to bardzo łatwe!

Wybierz „REPO -> Statystyki -> Ruch”

wprowadź opis obrazu tutaj

Farhan
źródło
1
uwaga, wydaje się, że wymaga to posiadania pewnego poziomu „własności” lub dostępu na poziomie
wspólnika
3
@KevinWorth The OP konkretnie wspomniał w swoim pytaniu o github. I otagowano github. Być może nie przeczytałeś całego pytania lub nie spojrzałeś na jego tagi?
csga5000
3
Niesamowite - pokazuje statystyki z ostatnich 30 dni. Byłoby miło, gdyby mieli cały czas lub rok, ale to jest coś!
TetraDev,
15

Po prostu odkryłem, że istnieje jeszcze prostszy sposób na uzyskanie go za pomocą jednego polecenia przy użyciu interfejsu API github.

curl -u [username]:[password] https://api.github.com/repos/[owner]/[repo]/traffic/clones

tutaj:

username  = your github id
password  = your github password, optional. If not put in command, a password request would pop out.
owner     = the owner of the repo, might be another name for a organized repo
repo      = the repo name

Baw się dobrze.

Wei Song
źródło
5

Jeśli chodzi o statystyki pobierania, możesz uzyskać informacje o swoich wydaniach za pośrednictwem interfejsu API .

Dla osób korzystających z WordPressa stworzyłem tę wtyczkę: GitHub Release Downloads . Pozwala uzyskać liczbę pobrań, linki i więcej informacji o wydaniach repozytoriów GitHub.

Aby odpowiedzieć na pierwotne pytanie, krótki kod [grd_count user="User" repo="MyRepo"]zwróci liczbę pobrań dla repozytorium. Ta liczba odpowiada sumie wszystkich wartości liczby pobrań wszystkich wydań dla jednego repozytorium GitHub.

Przykład: Przykład

IvanRF
źródło
1

Rzeczywiste liczby klonów są dostępne za pośrednictwem funkcji Clone Graphs , którą udało mi się zeskrobać, aby uzyskać indywidualne liczby:

#!/bin/sh
#
# This script requires:
#   apt-get install html-xml-utils
#   apt-get install jq
#
USERNAME=dougluce
PASSWORD="PASSWORD GOES HERE, BE CAREFUL!"
REPO="dougluce/node-autovivify"

TOKEN=`curl https://github.com/login -s -c /tmp/cookies.txt | \
     hxnormalize | \
     hxselect 'input[name=authenticity_token]' 2>/dev/null | \
     perl -lne 'print $1 if /value=\"(\S+)\"/'`

curl -X POST https://github.com/session \
     -s -b /tmp/cookies.txt -c /tmp/cookies2.txt \
     --data-urlencode commit="Sign in" \
     --data-urlencode authenticity_token="$TOKEN" \
     --data-urlencode login="$USERNAME" \
     --data-urlencode password="$PASSWORD" > /dev/null

curl "https://github.com/$REPO/graphs/clone-activity-data" \
     -s -b /tmp/cookies2.txt \
     -H "x-requested-with: XMLHttpRequest" #| jq '.summary'
Allen Luce
źródło
0

Możesz użyć shields.io, który zapewnia paski ikon, które wyświetlają liczniki projektów na różnych stronach internetowych, w tym na Github. Wyświetlają liczbę pobrań, ale nie liczbę klonów.

Oto przykład projektu, który mam:

Kod Markdown:

![GitHub All Releases](https://img.shields.io/github/downloads/lewdev/hw-gen/total)

Wynik:

GitHub Wszystkie wydania

Nikt nie „pobiera” mojej aplikacji, ponieważ jest już opublikowana, ale ludzie ją klonują. Więc wolałbym zobaczyć, jak to się liczy.

lewdev
źródło