¿Hay alguna forma de obtener estadísticas de descarga / clonación de un repositorio de git?

81

¿Hay alguna forma de saber cuántas veces se ha clonado o descargado un repositorio de git desde github? Solo tenía curiosidad porque encontré otras estadísticas, como los tiempos de confirmación, las líneas de códigos se pueden generar usando: http://gitstats.sourceforge.net/ pero no encontré cómo verificar el recuento de clones / descargas.

Shreyas Karnik
fuente
¿Le gustaría saber cuántas veces se ha bifurcado un repositorio ? Porque eso definitivamente es factible.
1
Ahora puede ver la cantidad de clones : consulte ¿Cómo obtener estadísticas de clones de GitHub?
VonC

Respuestas:

31

La clonación es una operación de solo lectura, el repositorio original no se modifica. No hay forma de que pueda obtener estadísticas de datos que simplemente no se rastrean.

meagar
fuente
24
Bueno, sería posible rastrearlo fuera de git, registrando en el nivel del mecanismo de transporte. Por ejemplo, estoy bastante seguro de que los registros de gitolite proporcionarían suficiente información para deducir clones (aunque creo que podrían no ser distinguibles de obtener todas las referencias de una manera diferente, no tengo ninguna para ver aquí). Pero, por supuesto, no tienes acceso a ese tipo de cosas desde github, incluso si existe.
Cascabel
No importa que los clones sean repositorios completos que se pueden clonar ellos mismos. Ver cuántas veces se ha clonado una instancia particular de un repositorio no sería útil para averiguar cuántas personas lo han clonado universalmente.
meagar
29
Sí, ciertamente nunca sería una estadística confiable, pero por ejemplo, podría ver que un proyecto de código abierto tiene curiosidad por tener al menos una estimación de orden de magnitud de cuántas personas podrían estar construyendo a partir de un maestro de desarrollo en lugar de instantáneas estables.
Cascabel
1
Creo que podrían simplemente registrar las solicitudes de clonación de git en cantidad; o mejor aún, estas solicitudes que realmente completan la descarga.
Aquarius Power
84

¡Es súper fácil ahora!

Vaya a "REPO -> Estadísticas -> Tráfico"

ingrese la descripción de la imagen aquí

Farhan
fuente
1
solo una nota, esto parece requerir que tenga algún nivel de "propiedad" o acceso de nivel de
confirmador
3
@KevinWorth El OP mencionó específicamente a github en su pregunta. Y etiquetado como github. ¿Quizás no leyó la pregunta completa o miró sus etiquetas?
csga5000
3
Impresionante: muestra las estadísticas de los últimos 30 días. Sería bueno si tuvieran todo el tiempo o por año, ¡pero esto es algo!
TetraDev
15

Descubrí que hay una forma aún más sencilla de obtenerlo con un solo comando usando la API de github.

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

aquí:

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

Que te diviertas.

Wei Song
fuente
5

Con respecto a las estadísticas de descarga, puede obtener información sobre sus Versiones a través de la API .

Para aquellos que usan WordPress, desarrollé este complemento: Descargas de versiones de GitHub . Le permite obtener el recuento de descargas, enlaces y más información para las versiones de los repositorios de GitHub.

Para abordar la pregunta original, el código abreviado [grd_count user="User" repo="MyRepo"]devolverá el número de descargas de un repositorio. Este número corresponde a la suma de todos los valores de recuento de descargas de todas las versiones de un repositorio de GitHub.

Ejemplo: Ejemplo

IvanRF
fuente
1

Los recuentos de clones reales están disponibles a través de la función Clonar gráficos , que he podido raspar para obtener los recuentos individuales:

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

Puede usar shields.io, que proporciona barras de iconos que muestran los recuentos de proyectos en varios sitios web, incluido Github. Muestran los recuentos de descargas, pero no los recuentos de clones.

Aquí hay un ejemplo de un proyecto que tengo:

Código de descuento:

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

Resultado:

Todos los lanzamientos de GitHub

Nadie "descarga" mi aplicación porque ya está publicada, pero la gente la clona. Así que prefiero ver los recuentos para eso.

lewdev
fuente