Gibt es in Github eine Möglichkeit, die Anzahl der Downloads für ein Repo anzuzeigen?
Gibt es in Github eine Möglichkeit, die Anzahl der Downloads für ein Repo anzuzeigen?
Antworten:
Update 2019:
/repos/:owner/:repo/traffic/clones
, um die Gesamtzahl der Klone und die Aufschlüsselung pro Tag oder Woche zu erhalten, jedoch: nur für die letzten 14 Tage./repos/:owner/:repo/releases/:release_id
zum Abrufen der Download-Nummer Ihrer Assets (Dateien, die an die Version angehängt sind), Feld download_count
unten angegeben, jedoch, wie kommentiert , nur für die letzten 30 Versionen.Update 2017
Sie können weiterhin die GitHub-API verwenden , um die Download-Anzahl für Ihre Releases abzurufen (was nicht genau der Fall ist ).
Siehe Feld " Einzelne Release abrufen " download_count
.
Es gibt keinen Verkehrsbildschirm mehr, auf dem die Anzahl der Repo-Klone angegeben ist.
Stattdessen müssen Sie sich auf Dienste von Drittanbietern verlassen, wie z.
www.netguru.co/gititback
), aber auch das beinhaltet nicht die Anzahl der Klone.githubstats0
, unten von Aveek Saha erwähnt .
www.somsubhra.com/github-release-stats , unten erwähnt.
Hier ist zum Beispiel die Nummer für das neueste Git für Windows
Update August 2014
GitHub schlägt auch die Anzahl der Klone für das Repo in seinem Verkehrsdiagramm vor:
Siehe " Klondiagramme ".
Update Oktober 2013
Wie unten von andyberry88 erwähnt und wie ich im letzten Juli ausführlich beschrieben habe , schlägt GitHub jetzt Releases vor (siehe API ), die ein download_count
Feld haben .
Michele Milidoni verwendet in seiner (optimierten) Antwort dieses Feld in seiner Python-Schrift .
( sehr kleiner Auszug )
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")
Ursprüngliche Antwort (Dezember 2010)
Ich bin nicht sicher, ob Sie diese Informationen sehen können (wenn sie überhaupt aufgezeichnet wurden), da ich sie in der GitHub Repository-API nicht sehe :
$ 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
Sie können nur sehen, ob Downloads vorhanden sind oder nicht.
download_count
Feld der Release-API sprechen , sollte dies die Anzahl der Release-Downloads enthalten (die nicht immer zip und keine Klone sind)
git clone
Instanzen. Wenden Sie sich zur Bestätigung an den GitHub-Support.
Ich habe eine kleine Webanwendung in Javascript geschrieben, um die Anzahl der Downloads aller Assets in den verfügbaren Versionen eines Projekts auf Github anzuzeigen. Sie können die Anwendung hier ausprobieren: http://somsubhra.github.io/github-release-stats/
GitHub hat die Download-Unterstützung abgelehnt und unterstützt jetzt "Releases" - https://github.com/blog/1547-release-your-software . Um eine Version zu erstellen, verwenden Sie entweder die GitHub-Benutzeroberfläche oder erstellen Sie ein kommentiertes Tag (http: // git-scm.com/book/ch2-6.html) und fügen Sie Versionshinweise in GitHub hinzu. Sie können dann Binärdateien oder "Assets" zu jeder Version hochladen.
Sobald Sie einige Releases haben, unterstützt die GitHub-API das Abrufen von Informationen über diese und ihre Assets.
curl -i \
https://api.github.com/repos/:owner/:repo/releases \
-H "Accept: application/vnd.github.manifold-preview+json"
Suchen Sie nach dem Eintrag 'download_count'. Weitere Informationen finden Sie unter http://developer.github.com/v3/repos/releases/ . Dieser Teil der API befindet sich noch im Vorschauzeitraum des Geldautomaten, sodass er sich möglicherweise ändern kann.
Die Release-API von GitHub ist jetzt außerhalb des Vorschauzeitraums, sodass der Header "Akzeptieren" nicht mehr benötigt wird - http://developer.github.com/changes/2013-11-04-releases-api-is-official/
Es schadet jedoch nicht, den Header "Akzeptieren" weiterhin hinzuzufügen.
downloads
Feld mehr in den Assets anzeigt (zumindest mit dieser Technik)?
download_count
ist das Feld, das die Anzahl der Downloads angibt - beispielsweise unter api.github.com/repos/twbs/bootstrap/releases . Es ist erwähnenswert, dass in dieser Liste nur "Releases" angezeigt werden. Tags, die auf der Release-Seite eines Repos angezeigt werden, werden nicht in der API-Liste angezeigt (siehe developer.github.com/v3/repos/releases) . Zum Beispiel listet github.com/jquery/jquery/releases mehrere Tags im Abschnitt "Releases" auf, aber eine leere Liste wird für api.github.com/repos/jquery/jquery/releases zurückgegeben .
count=0
)? Oder zeigt nur das Feld für Klonanforderungen an? Siehe hierzu: no download_count
: api.github.com/repos/demisjohn/pytrimsetup/releases . Die Github-Seite dafür ist hier: github.com/demisjohn/pyTRIMSetup/releases
bootstrap-XYZ-dist.zip
Asset, auf das sich das download_count
Feld bezieht. Wenn Sie sehen möchten, wie viele Personen eine Version herunterladen, müssen Sie eine Release-Zip hochladen. Soweit ich weiß, kann man nicht sehen, wie viele Personen ein Archiv über die API geklont / heruntergeladen haben. Die Diagrammansicht (von stackoverflow.com/a/4339085/2634854 oben) gibt Ihnen möglicherweise das, wonach Sie suchen .
Früher gab es in Github zwei Methoden zum Herunterladen von Code: Klonen oder Herunterladen eines .git-Repos als Zip oder Hochladen einer Datei (z. B. einer Binärdatei) zum späteren Herunterladen.
Beim Herunterladen eines Repos (Klonen oder Herunterladen als Zip) zählt Github die Anzahl der Downloads aus technischen Gründen nicht. Das Klonen eines Repositorys ist schreibgeschützt. Es ist keine Authentifizierung erforderlich. Dieser Vorgang kann über viele Protokolle ausgeführt werden, einschließlich HTTPS, dasselbe Protokoll, mit dem die Webseite das Repo im Browser anzeigt. Es ist sehr schwer zu zählen.
Siehe: http://git-scm.com/book/en/Git-on-the-Server-The-Protocols
Vor kurzem hat Github die Download-Funktionalität abgelehnt. Dies lag daran, dass sie verstehen, dass Github sich auf das Erstellen von Software und nicht auf das Verteilen von Binärdateien konzentriert.
Wie bereits erwähnt, gibt die GitHub-API die Anzahl der Downloads von Binärdateiveröffentlichungen zurück. Ich habe ein kleines Skript entwickelt, um die Anzahl der Downloads über die Befehlszeile zu ermitteln.
Sehr spät, aber hier ist die Antwort, die Sie wollen:
https://api.github.com/repos/ [git username] / [git project] /releases
Suchen Sie als Nächstes die ID des gesuchten Projekts in den Daten. Es sollte sich oben neben den URLs befinden. Navigieren Sie dann zu
https://api.github.com/repos/ [git username] / [git project] /releases/ [id] / assets
Das Feld download_count ist Ihre Antwort.
BEARBEITEN: Großbuchstaben spielen in Ihrem Benutzernamen und Projektnamen eine Rolle
{ "message": "Not Found", "documentation_url": "https://developer.github.com/v3" }
Die Github-API liefert nicht mehr die erforderlichen Informationen. Schauen Sie sich die Release- Seite an , die in Stan Towianskis Antwort erwähnt wird . Wie wir in den Kommentaren zu dieser Antwort besprochen haben, meldet die Github-API nur die Downloads von 1 der drei Dateien, die er pro Version anbietet.
Ich habe die Lösungen überprüft und einige andere Antworten auf diese Fragen gegeben. Voncs Antwort ist der wesentliche Teil der Lösung von Michele Milidoni . Ich habe sein GDC-Skript mit dem folgenden Ergebnis installiert
# ./gdc stant
mdcsvimporter.mxt: 37 downloads
mdcsvimporter.mxt: 80 downloads
How-to-use-mdcsvimporter-beta-16.zip: 12 downloads
Wie Sie deutlich sehen können, meldet gdc nicht die Downloadanzahl der Dateien tar.gz und zip.
Wenn Sie überprüfen möchten, ohne etwas zu installieren, versuchen Sie es mit der Webseite, auf der Somsubhra die in seiner Antwort erwähnte Lösung installiert hat . Geben Sie 'stant' als Github-Benutzernamen und 'mdcsvimporter2015' als Repository-Namen ein und Sie werden Dinge sehen wie:
Download Info:
mdcsvimporter.mxt(0.20MB) - Downloaded 37 times.
Last updated on 2015-03-26
Leider noch einmal nur ein Bericht ohne die Downloads der Dateien tar.gz und zip. Ich habe die Informationen, die die Github-API zurückgibt, sorgfältig geprüft, sie werden jedoch nirgendwo bereitgestellt. Die von der API zurückgegebene download_count ist heutzutage bei weitem nicht vollständig.
Unter https://githubstats0.firebaseapp.com können Sie überprüfen, wie oft eine Release-Datei / ein Release-Paket heruntergeladen wurde
Sie erhalten eine Gesamtzahl der Downloads und eine Aufschlüsselung der Gesamtzahl der Downloads pro Release-Tag.
Am Ende habe ich ein Scraper-Skript geschrieben, um die Anzahl meiner Klone zu ermitteln:
#!/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'
Dadurch werden die Daten von demselben Endpunkt abgerufen, den Githubs Klondiagramm verwendet, und die Summen daraus ausgespuckt. Die Daten enthalten auch Tageszählungen, die .summary
durch nur ersetzt werden .
, um diese hübsch gedruckt zu sehen.
Basierend auf den Antworten von VonC und Michele Milidoni habe ich dieses Lesezeichen erstellt, das Download-Statistiken der von Github gehosteten freigegebenen Binärdateien anzeigt.
Hinweis: Aufgrund von Problemen mit Browsern im Zusammenhang mit der Implementierung von Inhaltssicherheitsrichtlinien können Lesezeichen vorübergehend gegen einige CSP-Anweisungen verstoßen und funktionieren möglicherweise nicht ordnungsgemäß, wenn sie auf Github ausgeführt werden, während CSP aktiviert ist.
Obwohl davon dringend abgeraten wird, können Sie CSP in Firefox als vorübergehende Problemumgehung deaktivieren. Öffnen Sie about: config und setzen Sie security.csp.enable auf false.
Um dies klarer zu machen:
Für dieses Github-Projekt: stant / mdcsvimporter2015
https://github.com/stant/mdcsvimporter2015
mit Releases unter
https://github.com/stant/mdcsvimporter2015/releases
Gehen Sie zu http oder https: (Hinweis hinzugefügt "api." und "/ repos")
https://api.github.com/repos/stant/mdcsvimporter2015/releases
Sie erhalten diese JSON-Ausgabe und können nach "download_count" suchen:
"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"
oder in der Befehlszeile:
wget --no-check-certificate https://api.github.com/repos/stant/mdcsvimporter2015/releases
Wie bereits erwähnt, können Sie Informationen zu Ihren Releases über die API abrufen .
Für diejenigen, die WordPress verwenden, habe ich dieses Plugin entwickelt: GitHub Release Downloads . Hier können Sie die Anzahl der Downloads, Links und weitere Informationen für Versionen von GitHub-Repositorys abrufen.
Um die ursprüngliche Frage zu beantworten, gibt der Shortcode [grd_count user="User" repo="MyRepo"]
die Anzahl der Downloads für ein Repository zurück. Diese Zahl entspricht der Summe aller Download-Zählwerte aller Releases für ein GitHub-Repository.
Beispiel:
Antwort von 2019:
Ich hatte eine Web-App erstellt, die GitHub-Veröffentlichungsstatistiken in einem sauberen Format anzeigt: https://hanadigital.github.io/grev/
Für diejenigen, die die Lösung in Python benötigen, habe ich ein einfaches Skript geschrieben.
ghstats.py [user] [repo] [tag] [options]
Hier ist eine Python-Lösung, die das pip install PyGithub
Paket verwendet
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
undzip
Dateien) herunterzuladen .