Odpowiedzi:
Aktualizacja 2019:
Ústín „s odpowiedź wskazuje na:
/repos/:owner/:repo/traffic/clones
, aby uzyskać całkowitą liczbę klonów i podział na dzień lub tydzień, ale: tylko z ostatnich 14 dni./repos/:owner/:repo/releases/:release_id
do pobierania liczby pobrań zasobów (plików dołączonych do wydania), pole download_count
wymienione poniżej, ale, jak skomentowano , tylko dla ostatnich 30 wersji.Zaktualizuj 2017
Nadal możesz używać interfejsu API GitHub, aby uzyskać liczbę pobrań dla swoich wydań (co nie jest dokładnie tym , o co pytano).
Zobacz pole „ Uzyskaj pojedyncze wydanie ” download_count
.
Nie ma już ekranu ruchu wskazującego liczbę klonów repozytorium.
Zamiast tego musisz polegać na usługach innych firm, takich jak:
www.netguru.co/gititback
), ale nawet to nie obejmuje liczby klonów.githubstats0
, O których mowa poniżej przez Aveek Saha .
www.somsubhra.com/github-release-stats , o którym mowa poniżej .
Na przykład tutaj jest numer najnowszej wersji git dla systemu Windows
Aktualizacja sierpień 2014
GitHub proponuje również liczbę klonów do repozytorium na swoim wykresie ruchu:
Zobacz „ Clone Graphs ”
Aktualizacja październik 2013
Jak wspomniano poniżej przez andyberry88 i jak szczegółowo opisałem w lipcu zeszłego roku , GitHub proponuje teraz wydania (zobacz jego API ), które mają download_count
pole .
Michele Milidoni , w swojej (zaopiniowanej) odpowiedzi , używa tego pola w swoim skrypcie Pythona .
( bardzo mały wyciąg )
c.setopt(c.URL, 'https://api.github.com/repos/' + full_name + '/releases')
for p in myobj:
if "assets" in p:
for asset in p['assets']:
print (asset['name'] + ": " + str(asset['download_count']) +
" downloads")
Oryginalna odpowiedź (grudzień 2010)
Nie jestem pewien, czy widzisz te informacje (jeśli w ogóle są zapisywane), ponieważ nie widzę ich w API repozytorium GitHub :
$ curl http://github.com/api/v2/yaml/repos/show/schacon/grit
---
repository:
:name: grit
:owner: schacon
:source: mojombo/grit # The original repo at top of the pyramid
:parent: defunkt/grit # This repo's direct parent
:description: Grit is a Ruby library for extracting information from a
git repository in an object oriented manner - this fork tries to
intergrate as much pure-ruby functionality as possible
:forks: 4
:watchers: 67
:private: false
:url: http://github.com/schacon/grit
:fork: true
:homepage: http://grit.rubyforge.org/
:has_wiki: true
:has_issues: false
:has_downloads: true
Możesz tylko sprawdzić, czy ma pliki do pobrania, czy nie.
download_count
polu Release API, które powinno zawierać liczbę pobrań wydania (które nie zawsze są zipem i nie są klonami)
git clone
instancje. Skontaktuj się z obsługą GitHub, aby uzyskać potwierdzenie.
Napisałem małą aplikację internetową w javascript, aby pokazać liczbę pobrań wszystkich zasobów w dostępnych wersjach dowolnego projektu na Github. Możesz wypróbować aplikację tutaj: http://somsubhra.github.io/github-release-stats/
GitHub wycofał obsługę pobierania i obsługuje teraz „Wydania” - https://github.com/blog/1547-release-your-software . Aby utworzyć wydanie, użyj interfejsu użytkownika GitHub lub utwórz tag z adnotacjami (http: // git-scm.com/book/ch2-6.html) i dodaj do niego informacje o wersji w GitHub. Następnie możesz przesłać pliki binarne, czyli „zasoby”, do każdej wersji.
Gdy masz już kilka wydań, interfejs API GitHub obsługuje uzyskiwanie informacji o nich i ich zasobach.
curl -i \
https://api.github.com/repos/:owner/:repo/releases \
-H "Accept: application/vnd.github.manifold-preview+json"
Poszukaj wpisu „download_count”. Więcej informacji można znaleźć pod adresem http://developer.github.com/v3/repos/releases/ . Ta część interfejsu API jest nadal w wersji zapoznawczej ATM, więc może ulec zmianie.
Interfejs API wydań GitHub jest teraz poza okresem podglądu, więc nagłówek „Accept” nie jest już potrzebny - http://developer.github.com/changes/2013-11-04-releases-api-is-official/
Jednak dalsze dodawanie nagłówka „Akceptuj” nie zaszkodzi.
downloads
pola w zasobach (przynajmniej przy użyciu tej techniki)?
download_count
to pole wskazujące liczbę pobrań - na przykład w api.github.com/repos/twbs/bootstrap/releases . Warto zauważyć, że na tej liście pojawią się tylko „wydania”, tagi, które pojawiają się na stronie wersji repozytorium, nie pojawiają się na liście API, patrz developer.github.com/v3/repos/releases . Na przykład github.com/jquery/jquery/releases wyświetla kilka tagów w sekcji release, ale zwracana jest pusta lista dla api.github.com/repos/jquery/jquery/releases .
count=0
)? Czy pokazuje tylko pole dla żądań klonowania? Zobacz to bez download_count
: api.github.com/repos/demisjohn/pytrimsetup/releases . Strona github jest tutaj: github.com/demisjohn/pyTRIMSetup/releases
bootstrap-XYZ-dist.zip
zasób, do którego download_count
odnosi się pole. Jeśli chcesz zobaczyć, ile osób pobiera wydanie, musisz przesłać plik zip wydania. O ile mi wiadomo, nie ma możliwości sprawdzenia, ile osób sklonowało / pobrało archiwum za pośrednictwem interfejsu API. Widok wykresów (ze stackoverflow.com/a/4339085/2634854 powyżej) może jednak dać ci to, czego szukasz.
Wcześniej istniały dwie metody pobierania kodu na Github: klonowanie lub pobieranie jako repozytorium .git zip lub przesyłanie pliku (na przykład binarnego) do późniejszego pobrania.
Podczas pobierania repozytorium (klonowania lub pobierania jako zip) Github nie liczy liczby pobrań ze względu na ograniczenia techniczne. Klonowanie repozytorium jest operacją tylko do odczytu. Nie jest wymagane uwierzytelnienie. Operację tę można wykonać za pomocą wielu protokołów, w tym HTTPS, tego samego protokołu, którego używa strona internetowa do wyświetlania repozytorium w przeglądarce. Bardzo trudno to policzyć.
Zobacz: http://git-scm.com/book/en/Git-on-the-Server-The-Protocols
Ostatnio Github wycofał funkcję pobierania. To dlatego, że rozumieją, że Github koncentruje się na tworzeniu oprogramowania, a nie na dystrybucji plików binarnych.
Jak wspomniano, GitHub API zwraca liczbę pobrań wydań plików binarnych. Opracowałem mały skrypt, aby łatwo uzyskać liczbę pobrań z wiersza poleceń.
Bardzo późno, ale oto odpowiedź, której potrzebujesz:
https://api.github.com/repos/ [git username] / [git project] /releases
Następnie znajdź w danych identyfikator projektu, którego szukasz. Powinien znajdować się u góry, obok adresów URL. Następnie przejdź do
https://api.github.com/repos/ [git username] / [git project] /releases/ [id] / assets
Pole o nazwie download_count to Twoja odpowiedź.
EDYCJA: W nazwie użytkownika i nazwie projektu duże znaczenie mają wielkie litery
{ "message": "Not Found", "documentation_url": "https://developer.github.com/v3" }
Github API nie dostarcza już potrzebnych informacji. Spójrz na stronę z wydaniami , wspomnianą w odpowiedzi Stana Towiańskiego . Jak omówiliśmy w komentarzach do tej odpowiedzi, interfejs API Github zgłasza tylko pobranie 1 z trzech plików, które oferuje na wydanie.
Sprawdziłem rozwiązania podane w kilku innych odpowiedziach na to pytanie. Odpowiedź Vonc przedstawia zasadniczą część rozwiązania Michele Milidoni . Zainstalowałem jego skrypt gdc z następującym wynikiem
# ./gdc stant
mdcsvimporter.mxt: 37 downloads
mdcsvimporter.mxt: 80 downloads
How-to-use-mdcsvimporter-beta-16.zip: 12 downloads
Jak widać wyraźnie, gdc nie zgłasza liczby pobrań plików tar.gz i zip.
Jeśli chcesz sprawdzić bez instalowania czegokolwiek, wejdź na stronę internetową, na której Somsubhra zainstalował rozwiązanie wymienione w jego odpowiedzi . Wpisz „stant” jako nazwę użytkownika Github i „mdcsvimporter2015” jako nazwę repozytorium, a zobaczysz takie rzeczy, jak:
Download Info:
mdcsvimporter.mxt(0.20MB) - Downloaded 37 times.
Last updated on 2015-03-26
Niestety, ponownie tylko raport bez pobierania plików tar.gz i zip. Dokładnie przeanalizowałem informacje zwracane przez API Githuba, ale nigdzie ich nie podano. Liczba pobierania, którą zwraca API, jest obecnie daleka od ukończenia.
Aby sprawdzić, ile razy plik / pakiet wersji został pobrany, przejdź do https://githubstats0.firebaseapp.com
Daje całkowitą liczbę pobrań i podział wszystkich pobrań na tag wydania.
Skończyło się na napisaniu skryptu skrobaka, aby znaleźć liczbę klonów:
#!/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'
Spowoduje to pobranie danych z tego samego punktu końcowego, którego używa wykres klonów Githuba, i wypluje z niego sumy. Dane obejmują również liczby dzienne, zamień na .summary
tylko .
po to, aby zobaczyć te ładnie wydrukowane.
Na podstawie odpowiedzi VonC i Michele Milidoni stworzyłem tę bookmarklet, która wyświetla statystyki pobrań wydanych plików binarnych udostępnianych na githubie.
Uwaga: Ze względu na problemy z przeglądarkami związane z implementacją polityki bezpieczeństwa treści, bookmarklety mogą tymczasowo naruszać niektóre dyrektywy CSP i zasadniczo mogą nie działać poprawnie podczas uruchamiania na github, gdy CSP jest włączony.
Chociaż jest to wysoce odradzane, możesz wyłączyć CSP w Firefoksie jako tymczasowe obejście. Otwórz about: config i ustaw security.csp.enable na false.
Aby to wyjaśnić:
dla tego projektu github: stant / mdcsvimporter2015
https://github.com/stant/mdcsvimporter2015
z wydaniami na
https://github.com/stant/mdcsvimporter2015/releases
przejdź do http lub https: (dodano uwagę „api.” i „/ repos”)
https://api.github.com/repos/stant/mdcsvimporter2015/releases
otrzymasz to wyjście json i możesz wyszukać „download_count”:
"download_count": 2,
"created_at": "2015-02-24T18:20:06Z",
"updated_at": "2015-02-24T18:20:07Z",
"browser_download_url": "https://github.com/stant/mdcsvimporter2015/releases/download/v18/mdcsvimporter-beta-18.zip"
lub w wierszu poleceń wykonaj:
wget --no-check-certificate https://api.github.com/repos/stant/mdcsvimporter2015/releases
Jak już wspomniano, możesz uzyskać informacje o swoich wydaniach za pośrednictwem interfejsu API .
Dla tych, którzy używają WordPress, opracował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:
Odpowiedź z 2019:
Zrobiłem aplikację internetową, która pokazuje statystyki wersji GitHub w czystym formacie: https://hanadigital.github.io/grev/
Dla tych, którzy potrzebują rozwiązania w Pythonie, napisałem prosty skrypt.
ghstats.py [user] [repo] [tag] [options]
Oto rozwiązanie w języku Python korzystające z pip install PyGithub
pakietu
from github import Github
g = Github("youroauth key") #create token from settings page
for repo in g.get_user().get_repos():
if repo.name == "yourreponame":
releases = repo.get_releases()
for i in releases:
if i.tag_name == "yourtagname":
for j in i.get_assets():
print("{} date: {} download count: {}".format(j.name, j.updated_at, j._download_count.value))
tar.gz
izip
pliki).