Los recuentos de clones están disponibles para usuarios autorizados al raspar con un nombre de usuario / contraseña de Github, al igual que los recuentos de descargas de archivos de activos dentro de las versiones . No parece posible obtener recuentos de clones de repositorios públicos o descargar estadísticas en archivos que no son activos (es decir, repositorios tar.gzy ziparchivos).
Allen Luce
1
Para cualquiera que lea las respuestas, todos los scripts que figuran a continuación que proporcionan la versión download_count son incorrectos, ya que no tienen en cuenta el sistema de paginación de GitHub, y solo dan el total de las 30 versiones más recientes,
API /repos/:owner/:repo/traffic/clones, para obtener el número total de clones y desglose por día o semana, pero: solo durante los últimos 14 días.
API /repos/:owner/:repo/releases/:release_idpara obtener el número de descargas de sus activos (archivos adjuntos a la versión), campo download_countmencionado a continuación, pero, como se comentó , solo para las 30 versiones más recientes.
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")
Respuesta original (diciembre de 2010)
No estoy seguro de que pueda ver esa información (si está registrada), porque no la veo en la API del repositorio de 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
@MarzSocks si está hablando del download_countcampo de la API de lanzamiento, eso debería incluir el número de descargas de lanzamiento (que no siempre son zip y no son clones)
VonC
@MarzSocks si está hablando de "número de clones", eso no debería incluir las descargas zip. Solo las git cloneinstancias. Consulte con el soporte de GitHub para confirmar.
Sigo recibiendo mensajes de 'No hay lanzamientos para este proyecto' o 'El proyecto no existe'. ¿En qué estoy equivocado?
Alex
Estoy recibiendo el mismo mensaje. Eso no puede estar bien.
cryptic0
3
Sí. Yo también. Parece que esta aplicación dejó de funcionar hace mucho tiempo.
Daan van den Bergh el
1
Esta aplicación no es correcta, ya que solo incluye las 30 versiones más recientes proporcionadas por GitHub en una respuesta API, como se detalla aquí: developer.github.com/v3/guides/traversing-with-pagination Es necesario recorrer las páginas desde el enlace "siguiente" que figura en el encabezado para calcular el total correcto. Un ejemplo de repositorio es slamdata / quasar, donde este método da un total totalmente incorrecto.
Qiri
Recuentos de aplicación sólo pases con comunicados
SM Pat
12
GitHub ha dejado de ser compatible con la descarga y ahora admite 'Versiones': https://github.com/blog/1547-release-your-software . Para crear una versión, use la interfaz de usuario de GitHub o cree una etiqueta anotada (http: // git-scm.com/book/ch2-6.html) y agregue notas de versión en GitHub. A continuación, puede cargar archivos binarios o "activos" en cada versión.
Una vez que tenga algunas versiones, la API de GitHub admite la obtención de información sobre ellas y sus activos.
Busque la entrada 'download_count'. Hay más información en http://developer.github.com/v3/repos/releases/ . Esta parte de la API aún se encuentra en el período de vista previa ATM, por lo que puede cambiar.
Los recuentos de descargas solo están disponibles para los activos de lanzamiento, no para los archivos de código fuente de la etiqueta. Si observa las URL de arranque que proporcioné anteriormente, tienen un bootstrap-XYZ-dist.zipactivo con el que se download_countrelaciona el campo. Si desea ver cuántas personas están descargando un lanzamiento, debe cargar un zip de lanzamiento. Hasta donde sé, no hay forma de ver cuántas personas han clonado / descargado un archivo a través de la API. Sin embargo, la vista de gráficos (de stackoverflow.com/a/4339085/2634854 ) puede darle lo que busca.
andyberry88
Gracias por aclararlo. Los gráficos son realmente útiles.
Demis
12
El recuento de VISITANTES debe estar disponible en su panel de control> Tráfico (o estadísticas o estadísticas):
Anteriormente, había dos métodos de descarga de código en Github: clonar o descargar como zip un repositorio .git, o cargar un archivo (por ejemplo, un binario) para descargarlo más tarde.
Al descargar un repositorio (clonar o descargar como zip), Github no cuenta el número de descargas por limitaciones técnicas. Clonar un repositorio es una operación de solo lectura. No se requiere autenticación. Esta operación se puede realizar a través de muchos protocolos, incluido HTTPS, el mismo protocolo que utiliza la página web para mostrar el repositorio en el navegador. Es muy difícil contarlo.
Recientemente, Github desaprobó la funcionalidad de descarga. Esto se debe a que entienden que Github se centra en la creación de software, y no en distribuir binarios.
Como se mencionó, la API de GitHub devuelve el recuento de descargas de lanzamientos de archivos binarios. Desarrollé un pequeño script para obtener fácilmente el recuento de descargas por línea de comando.
¿En algún lugar puedo ver un ejemplo de esto en uso? ¿Se puede agregar a una insignia de Github? Si no, ¿sería posible usar Google Analytics para obtener el recuento de descargas de la insignia de Github de alguna manera?
eonist
6
Muy tarde, pero aquí está la respuesta que quieres:
A continuación, encuentre la identificación del proyecto que está buscando en los datos. Debe estar cerca de la parte superior, al lado de las URL. Luego, navegue a
La API de Github ya no proporciona la información necesaria. Echa un vistazo a la página de lanzamientos , mencionada en la respuesta de Stan Towianski . Como discutimos en los comentarios a esa respuesta, la API de Github solo informa las descargas de 1 de los tres archivos que ofrece por lanzamiento.
He verificado las soluciones, que se proporcionan en algunas otras respuestas a estas preguntas. La respuesta de Vonc presenta la parte esencial de la solución de Michele Milidoni . Instalé su script gdc con el siguiente resultado
Como puede ver claramente, gdc no informa el recuento de descargas de los archivos tar.gz y zip.
Si desea verificar sin instalar nada, pruebe la página web donde Somsubhra ha instalado la solución, mencionada en su respuesta . Complete 'stant' como nombre de usuario de Github y 'mdcsvimporter2015' como nombre del repositorio y verá cosas como:
Download Info:
mdcsvimporter.mxt(0.20MB) - Downloaded 37 times.
Last updated on 2015-03-26
Por desgracia, una vez más solo un informe sin las descargas de los archivos tar.gz y zip. He examinado cuidadosamente la información que devuelve la API de Github, pero no se proporciona en ninguna parte. El conteo de descargas que devuelve la API está lejos de estar completo hoy en día.
Tenga en cuenta que esto solo funciona para archivos binarios en versión, no para el código fuente en sí, lo que significa que si no carga ningún otro archivo para descargar, no contará. Probablemente esté usando la API de Github de la respuesta de LeChosenOne.
JoniVR
3
Terminé escribiendo un script de scraper para encontrar mi recuento de clones:
Esto tomará los datos del mismo punto final que usa el gráfico de clones de Github y escupirá los totales. Los datos también incluyen recuentos por día, reemplácelos .summarysolo .para ver los bonitos impresos.
Basado en las respuestas de VonC y Michele Milidoni, he creado este bookmarklet que muestra estadísticas de descargas de binarios liberados alojados en github.
Nota: Debido a problemas con los navegadores relacionados con la implementación de la Política de seguridad de contenido, los marcadores pueden violar temporalmente algunas directivas de CSP y, básicamente, pueden no funcionar correctamente cuando se ejecutan en github mientras CSP está habilitado.
Aunque es altamente desaconsejado, puede deshabilitar CSP en Firefox como una solución temporal. Abre about: config y establece security.csp.enable en false.
Hasta donde puedo ver, github solo cuenta el primero de los tres archivos que ofrece para descargar, como mdcsvimporter-beta-18.zip. ¿Alguna vez encontraste una manera de obtener un número de descargas de cosas como v19.zip?
Jan Ehrhardt
Solo tengo 3 versiones para md2015, y v19 es la primera que se muestra. v19 vino después de esta publicación, por lo que no se muestra aquí. ¿Fuiste a la url :-)? "download_count": 31, "created_at": "2015-03-26T04: 22: 13Z", "updated_at": "2015-03-26T04: 22: 13Z", "browser_download_url":
Hola. Ni siquiera estoy seguro de dónde se te ocurrieron esas URL de descarga, pero esa es una pregunta para github. Solo parece contar los archivos que publico (3), y ni siquiera los archivos zip de origen que crea (otros 2 por mi lanzamiento). Escribí una aplicación de Java para mí que ejecuto para hacer esta llamada, recuperar el json, analizar y mostrar solo el recuento de descargas.
Stan Towianski,
Demasiado. Aparentemente, Github no proporciona la información que necesitamos (¿ya?). De los archivos 3 * 3 que tiene en github.com/stant/mdcsvimporter2015/releases , solo informa el doenload_count del archivo de lanzamiento, no de los archivos * .tar.gz y * .zip. Haré la respuesta por separado ya que afecta a todas las demás soluciones.
Para aquellos que usan WordPress, desarrollé este complemento: Descargas de lanzamiento de GitHub . Le permite obtener el recuento de descargas, enlaces y más información para versiones de repositorios de GitHub.
Para abordar la pregunta original, el shortcode [grd_count user="User" repo="MyRepo"]devolverá el número de descargas para un repositorio. Este número corresponde a la suma de todos los valores de conteo de descargas de todas las versiones para un repositorio de GitHub.
Aquí hay una solución de Python que usa el pip install PyGithubpaquete
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
yzip
archivos).Respuestas:
Actualización 2019:
La respuesta de Ustin apunta a:
/repos/:owner/:repo/traffic/clones
, para obtener el número total de clones y desglose por día o semana, pero: solo durante los últimos 14 días./repos/:owner/:repo/releases/:release_id
para obtener el número de descargas de sus activos (archivos adjuntos a la versión), campodownload_count
mencionado a continuación, pero, como se comentó , solo para las 30 versiones más recientes.Actualización 2017
Todavía puede usar la API de GitHub para obtener el recuento de descargas para sus versiones (que no es exactamente lo que se le pidió).
Consulte " Obtener una versión única ", el
download_count
campo.Ya no hay una pantalla de tráfico que mencione la cantidad de clones de repositorio.
En cambio, debe confiar en servicios de terceros como:
www.netguru.co/gititback
), pero incluso eso no incluye el número de clones.githubstats0
, mencionado a continuación por Aveek Saha .www.somsubhra.com/github-release-stats , mencionados a continuación .
Por ejemplo, aquí está el número de la última versión de git para Windows
Actualización de agosto de 2014
GitHub también propone el número de clones para repos en su Gráfico de tráfico:
consulte " Gráficos de clonación "
Actualización octubre 2013
Como se menciona a continuación por andyberry88 , y como detallé en julio pasado , GitHub ahora propone lanzamientos (consulte su API ), que tiene un
download_count
campo .Michele Milidoni , en su respuesta (votada) , usa ese campo en su script de Python .
( extracto muy pequeño )
Respuesta original (diciembre de 2010)
No estoy seguro de que pueda ver esa información (si está registrada), porque no la veo en la API del repositorio de GitHub :
Solo puedes ver si tiene descargas o no.
fuente
download_count
campo de la API de lanzamiento, eso debería incluir el número de descargas de lanzamiento (que no siempre son zip y no son clones)git clone
instancias. Consulte con el soporte de GitHub para confirmar.He escrito una pequeña aplicación web en JavaScript para mostrar el recuento de la cantidad de descargas de todos los activos en las versiones disponibles de cualquier proyecto en Github. Puede probar la aplicación aquí: http://somsubhra.github.io/github-release-stats/
fuente
GitHub ha dejado de ser compatible con la descarga y ahora admite 'Versiones': https://github.com/blog/1547-release-your-software . Para crear una versión, use la interfaz de usuario de GitHub o cree una etiqueta anotada (http: // git-scm.com/book/ch2-6.html) y agregue notas de versión en GitHub. A continuación, puede cargar archivos binarios o "activos" en cada versión.
Una vez que tenga algunas versiones, la API de GitHub admite la obtención de información sobre ellas y sus activos.
Busque la entrada 'download_count'. Hay más información en http://developer.github.com/v3/repos/releases/ . Esta parte de la API aún se encuentra en el período de vista previa ATM, por lo que puede cambiar.
Actualización de noviembre de 2013:
La API de lanzamientos de GitHub ahora está fuera del período de vista previa, por lo que el encabezado 'Aceptar' ya no es necesario: http://developer.github.com/changes/2013-11-04-releases-api-is-official/
Sin embargo, no hará ningún daño continuar agregando el encabezado 'Aceptar'.
fuente
downloads
campo en los activos (al menos con esta técnica)?download_count
es el campo que indica el número de descargas, por ejemplo en api.github.com/repos/twbs/bootstrap/releases . Vale la pena señalar que solo los 'lanzamientos' aparecerán en esta lista, las etiquetas que aparecen en la página de lanzamientos de un repositorio no aparecen en la lista de API, consulte developer.github.com/v3/repos/releases . Por ejemplo, github.com/jquery/jquery/releases enumera varias etiquetas en la sección de lanzamientos, pero se devuelve una lista vacía para api.github.com/repos/jquery/jquery/releases .count=0
. ¿O solo muestra el campo para las solicitudes de clonación? Vea esto, sindownload_count
: api.github.com/repos/demisjohn/pytrimsetup/releases . La página de Github para eso está aquí: github.com/demisjohn/pyTRIMSetup/releasesbootstrap-XYZ-dist.zip
activo con el que sedownload_count
relaciona el campo. Si desea ver cuántas personas están descargando un lanzamiento, debe cargar un zip de lanzamiento. Hasta donde sé, no hay forma de ver cuántas personas han clonado / descargado un archivo a través de la API. Sin embargo, la vista de gráficos (de stackoverflow.com/a/4339085/2634854 ) puede darle lo que busca.El recuento de VISITANTES debe estar disponible en su panel de control> Tráfico (o estadísticas o estadísticas):
fuente
Anteriormente, había dos métodos de descarga de código en Github: clonar o descargar como zip un repositorio .git, o cargar un archivo (por ejemplo, un binario) para descargarlo más tarde.
Al descargar un repositorio (clonar o descargar como zip), Github no cuenta el número de descargas por limitaciones técnicas. Clonar un repositorio es una operación de solo lectura. No se requiere autenticación. Esta operación se puede realizar a través de muchos protocolos, incluido HTTPS, el mismo protocolo que utiliza la página web para mostrar el repositorio en el navegador. Es muy difícil contarlo.
Ver: http://git-scm.com/book/en/Git-on-the-Server-The-Protocols
Recientemente, Github desaprobó la funcionalidad de descarga. Esto se debe a que entienden que Github se centra en la creación de software, y no en distribuir binarios.
Ver: https://github.com/blog/1302-goodbye-uploads
fuente
Como se mencionó, la API de GitHub devuelve el recuento de descargas de lanzamientos de archivos binarios. Desarrollé un pequeño script para obtener fácilmente el recuento de descargas por línea de comando.
fuente
Muy tarde, pero aquí está la respuesta que quieres:
A continuación, encuentre la identificación del proyecto que está buscando en los datos. Debe estar cerca de la parte superior, al lado de las URL. Luego, navegue a
El campo llamado download_count es su respuesta.
EDITAR: Las mayúsculas importan en su nombre de usuario y nombre de proyecto
fuente
{ "message": "Not Found", "documentation_url": "https://developer.github.com/v3" }
La API de Github ya no proporciona la información necesaria. Echa un vistazo a la página de lanzamientos , mencionada en la respuesta de Stan Towianski . Como discutimos en los comentarios a esa respuesta, la API de Github solo informa las descargas de 1 de los tres archivos que ofrece por lanzamiento.
He verificado las soluciones, que se proporcionan en algunas otras respuestas a estas preguntas. La respuesta de Vonc presenta la parte esencial de la solución de Michele Milidoni . Instalé su script gdc con el siguiente resultado
Como puede ver claramente, gdc no informa el recuento de descargas de los archivos tar.gz y zip.
Si desea verificar sin instalar nada, pruebe la página web donde Somsubhra ha instalado la solución, mencionada en su respuesta . Complete 'stant' como nombre de usuario de Github y 'mdcsvimporter2015' como nombre del repositorio y verá cosas como:
Por desgracia, una vez más solo un informe sin las descargas de los archivos tar.gz y zip. He examinado cuidadosamente la información que devuelve la API de Github, pero no se proporciona en ninguna parte. El conteo de descargas que devuelve la API está lejos de estar completo hoy en día.
fuente
Para verificar la cantidad de veces que se descargó un archivo / paquete de lanzamiento, puede ir a https://githubstats0.firebaseapp.com
Le ofrece un recuento total de descargas y una división de las descargas totales por etiqueta de lanzamiento.
fuente
Terminé escribiendo un script de scraper para encontrar mi recuento de clones:
Esto tomará los datos del mismo punto final que usa el gráfico de clones de Github y escupirá los totales. Los datos también incluyen recuentos por día, reemplácelos
.summary
solo.
para ver los bonitos impresos.fuente
Basado en las respuestas de VonC y Michele Milidoni, he creado este bookmarklet que muestra estadísticas de descargas de binarios liberados alojados en github.
Nota: Debido a problemas con los navegadores relacionados con la implementación de la Política de seguridad de contenido, los marcadores pueden violar temporalmente algunas directivas de CSP y, básicamente, pueden no funcionar correctamente cuando se ejecutan en github mientras CSP está habilitado.
fuente
Para intentar aclarar esto:
para este proyecto github: stant / mdcsvimporter2015
https://github.com/stant/mdcsvimporter2015
con lanzamientos en
https://github.com/stant/mdcsvimporter2015/releases
vaya a http o https: (se agregó la nota "api" y "/ repos")
https://api.github.com/repos/stant/mdcsvimporter2015/releases
obtendrá esta salida json y puede buscar "download_count":
o en la línea de comando:
wget --no-check-certificate https://api.github.com/repos/stant/mdcsvimporter2015/releases
fuente
Como ya se indicó, puede obtener información sobre sus lanzamientos a través de la API .
Para aquellos que usan WordPress, desarrollé este complemento: Descargas de lanzamiento de GitHub . Le permite obtener el recuento de descargas, enlaces y más información para versiones de repositorios de GitHub.
Para abordar la pregunta original, el shortcode
[grd_count user="User" repo="MyRepo"]
devolverá el número de descargas para un repositorio. Este número corresponde a la suma de todos los valores de conteo de descargas de todas las versiones para un repositorio de GitHub.Ejemplo:
fuente
Respuesta desde 2019:
fuente
Hice una aplicación web que muestra las estadísticas de lanzamiento de GitHub en un formato limpio: https://hanadigital.github.io/grev/
fuente
Para aquellos que necesitan la solución en Python, escribí un script simple.
Python Script:
Uso:
ghstats.py [user] [repo] [tag] [options]
Apoyo:
fuente
Aquí hay una solución de Python que usa el
pip install PyGithub
paquetefuente