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.


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

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.


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


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ß.


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


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'

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.