Gibt es eine Möglichkeit, Download- / Klonstatistiken eines Git-Repositorys abzurufen?

81

Gibt es eine Möglichkeit zu ermitteln, wie oft ein Git-Repository von Github geklont oder heruntergeladen wurde? Ich war nur neugierig, als ich feststellte, dass andere Statistiken wie Commit-Times-Codezeilen mithilfe von http://gitstats.sourceforge.net/ generiert werden konnten, aber ich fand nicht heraus, wie ich die Anzahl der Klone / Downloads überprüfen konnte.

Shreyas Karnik
quelle
Möchten Sie herausfinden, wie oft ein Repository stattdessen gegabelt wurde ? Weil das definitiv machbar ist.
1
Sie können jetzt die Anzahl der Klone sehen : siehe Wie bekomme ich GitHub-Klon-Statistiken?
VonC
1
Mögliches Duplikat von Wie bekomme ich GitHub Clone-Statistiken?
Sumid

Antworten:

31

Das Klonen ist schreibgeschützt, das ursprüngliche Repository wird nicht geändert. Es gibt keine Möglichkeit, Statistiken für Daten abzurufen, die einfach nicht verfolgt werden.

meagar
quelle
24
Nun, es wäre möglich , es außerhalb von Git zu verfolgen, indem man es auf der Ebene des Transportmechanismus protokolliert. Ich bin mir zum Beispiel ziemlich sicher, dass Gitolite-Protokolle genügend Informationen liefern würden, um Klone abzuleiten (obwohl ich denke, dass sie möglicherweise nicht vom Abrufen aller Refs auf unterschiedliche Weise unterscheidbar sind? Sie müssen hier keine ansehen). Aber natürlich haben Sie von Github aus keinen Zugriff auf solche Dinge, selbst wenn sie existieren.
Cascabel
Es ist egal, dass Klone vollständige Repositorys sind, die selbst geklont werden können. Zu sehen, wie oft eine bestimmte Instanz eines Repositorys geklont wurde, wäre nicht hilfreich, um herauszufinden, wie viele Personen es universell geklont haben.
Meagar
29
Ja, es wäre sicherlich nie eine verlässliche Statistik, aber ich könnte zum Beispiel sehen, dass ein Open-Source-Projekt neugierig ist, zumindest eine Größenordnungsschätzung darüber zu haben, wie viele Leute aus dem Entwicklungsmaster anstelle stabiler Schnappschüsse bauen könnten.
Cascabel
1
Ich denke, sie könnten einfach den Betrag der Git-Klon-Anfragen protokollieren. oder noch besser, diese Anfragen, die den Download tatsächlich abschließen.
Wassermann Power
83

Es ist jetzt super einfach!

Gehen Sie zu "REPO -> Einblicke -> Verkehr"

Geben Sie hier die Bildbeschreibung ein

Farhan
quelle
1
Nur eine Anmerkung, dies scheint zu erfordern, dass Sie ein gewisses Maß an "Besitz" - oder Commiter-Level-Zugriff haben
bbarker
3
@ KevinWorth Das OP erwähnte Github in seiner Frage ausdrücklich. Und getaggt Github. Vielleicht haben Sie die vollständige Frage nicht gelesen oder sich die Tags angesehen?
csga5000
3
Genial - es zeigt Statistiken der letzten 30 Tage. Es wäre schön, wenn sie alle Zeit oder bis zum Jahr hätten, aber das ist etwas!
TetraDev
14

Ich finde nur heraus, dass es einen noch einfacheren Weg gibt, es mit einem einzigen Befehl unter Verwendung der Github-API zu bekommen.

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

Hier:

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

Habe Spaß.

Wei Song
quelle
5

In Bezug auf Download-Statistiken 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 Releases 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: Beispiel

IvanRF
quelle
1

Die tatsächlichen Klonzahlen sind über die Funktion " Klondiagramme" verfügbar , die ich kratzen konnte, um die einzelnen Zählungen zu erhalten:

#!/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
quelle
0

Sie können Shields.io verwenden, das Symbolleisten bereitstellt, in denen die Anzahl der Projekte auf verschiedenen Websites einschließlich Github angezeigt wird. Sie zeigen die Anzahl der Downloads an, nicht jedoch die Anzahl der Klone.

Hier ist ein Beispiel für ein Projekt, das ich habe:

Abschriftencode:

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

Ergebnis:

GitHub Alle Releases

Niemand "lädt" meine App herunter, weil sie bereits veröffentlicht wurde, aber die Leute klonen sie. Also würde ich lieber die Anzahl dafür sehen.

lewdev
quelle