¿Hay alguna manera de ver qué tan grande es un repositorio de Git en GitHub antes de que decidas clonarlo?
Esto parece una estadística realmente obvia / básica, pero no puedo encontrar cómo verla en GitHub.
¿Hay alguna manera de ver qué tan grande es un repositorio de Git en GitHub antes de que decidas clonarlo?
Esto parece una estadística realmente obvia / básica, pero no puedo encontrar cómo verla en GitHub.
Respuestas:
Hay una manera de acceder a esta información a través de la API de GitHub .
GET /repos/:user/:repo
Al recuperar información sobre un repositorio, una propiedad nombrada size
se valora con el tamaño de todo el repositorio (incluido todo su historial), en kilobytes.
Por ejemplo, el repositorio de Git pesa alrededor de 124 MB. Se size
valora la propiedad de la carga útil JSON devuelta 124283
.
El tamaño se expresa en kilobytes según el uso del disco del repositorio del lado del servidor. Sin embargo, para evitar perder demasiado espacio con repositorios con una red grande, GitHub confía en Git Alternates . En esta configuración, calcular el uso del disco contra el repositorio simple no tiene en cuenta el almacén de objetos compartidos y, por lo tanto, devuelve un valor "incompleto" a través de la llamada a la API.
Esta información ha sido proporcionada por el soporte de GitHub.
$ curl -u "{:username}" https://api.github.com/repos/{:organization}/{:repository}
. Consulte developer.github.com/v3/#authentication
Si posee el repositorio, puede encontrar el tamaño exacto abriendo Configuración de su cuenta → Repositorios ( https://github.com/settings/repositories ), y el tamaño del repositorio se muestra junto a su designación.
Si no posee el repositorio, puede bifurcarlo y luego verificarlo en el mismo lugar.
Algo hacky: use la download as a zip file
opción, lea el tamaño de archivo indicado y luego cancélelo.
No recuerdo si la descarga como zip alguna vez funcionó, pero en cualquier caso, hacerlo ahora solo descarga la rama seleccionada actualmente sin historial.
Settings > Repositories
, pero en su lugar encontré el tamaño del repositorio debajo Account Settings > Repositories
de la página de inicio de su git. Por supuesto, esto solo funciona con repositorios que posee (o fork).
Si utiliza el navegador Google Chrome, puede instalar la extensión GitHub Repository Size .
Repo aquí: https://github.com/harshjv/github-repo-size
@larowlan gran código de muestra. Con el nuevo GitHub API V3, la declaración curl debe actualizarse. Además, el inicio de sesión ya no es obligatorio:
curl https://api.github.com/repos/$2/$3 2> /dev/null | grep size | tr -dc '[:digit:]'
Por ejemplo:
curl https://api.github.com/repos/dotnet/roslyn 2> /dev/null | grep size | tr -dc '[:digit:]'
devuelve 931668
(en KB), que es casi un GB.
Para hacer esto con curl (sudo apt-get curl) y json pretty (sudo gem install jsonpretty json):
curl -u "YOURGITHUBUSERNAME" http://github.com/api/v2/json/repos/show/OWNER/REPOSITORY |
jsonpretty
Reemplace YOURGITHUBUSERNAME con su nombre de usuario de GitHub (vaya figura).
Reemplace PROPIETARIO con el nombre de usuario Git del propietario del repositorio. Reemplace REPOSITORY con el nombre del repositorio.
O como un buen script Bash (pegue esto en un archivo llamado gitrepo-info):
#!/bin/bash
if [ $# -ne 3 ]
then
echo "Usage: gitrepo-info <username> <owner> <repo>"
exit 65
fi
curl -u "$1" http://github.com/api/v2/json/repos/show/$2/$3|jsonpretty
Úselo así:
gitrepo-info larowlan pisi reel
Esto me dará información sobre el repositorio pisi / reel en GitHub.
Debe seguir la API de GitHub. Consulte la documentación aquí para obtener todos los detalles sobre su repositorio. Requiere que realice una solicitud GET como:
GET / repos /: owner /: repositorio
Necesita reemplazar dos cosas:
Por ejemplo, mi nombre de usuario maheshmnj , y tengo un repositorio, flutter-ui-nice , por lo que mi URL GET será:
https://api.github.com/repos/maheshmnj/flutter-ui-nice
Al hacer una solicitud GET, se inundará con algunos datos JSON y probablemente en la línea número 78 debería ver una clave llamada size que devolverá el tamaño del repositorio.
Consejo: cuando trabaje con JSON, le sugiero que agregue un complemento que formatee los datos de JSON para facilitar la lectura de JSON. Instala el complemento .
size
clave en la respuesta, no la línea 78. Sin mencionar que los diferentes formateadores tendrán saltos de línea diferentes en diferentes lugares, dejando los datos deseados en un número de línea diferente.
probably
verla en la línea no 78, por lo que eso indica que debería ver la clave de tamaño en algún lugar alrededor de 78 En segundo lugar, si el tamaño de la github apis no era exacto, no creo que encuentre algo más preciso que github apis.
Para resumir las soluciones @larowlan, @VMTrooper y @vahid chakoshy:
#!/usr/bin/env bash
if [ "$#" -eq 2 ]; then
echo "$(echo "scale=2; $(curl https://api.github.com/repos/$1/$2 2>/dev/null \
| grep size | head -1 | tr -dc '[:digit:]') / 1024" | bc)MB"
elif [ "$#" -eq 3 ] && [ "$1" == "-z" ]; then
# For some reason Content-Length header is returned only on second try
curl -I https://codeload.github.com/$2/$3/zip/master &>/dev/null
echo "$(echo "scale=2; $(curl -I https://codeload.github.com/$2/$3/zip/master \
2>/dev/null | grep Content-Length | cut -d' ' -f2 | tr -d '\r') / 1024 / 1024" \
| bc)MB"
else
printf "Usage: $(basename $0) [-z] OWNER REPO\n\n"
printf "Get github repository size or, optionally [-z], the size of the zipped\n"
printf "master branch (`Download ZIP` link on repo page).\n"
exit 1
fi
Para un repositorio privado, deberá obtener un token de acceso personal en https://github.com/settings/tokens .
Luego use el siguiente comando curl para obtener los detalles (sustituyendo en valores por [token], [propietario] y [nombre]):
curl -u git:[token] https://api.github.com/repos/[owner]/[name] 2> /dev/null | grep size
Como se mencionó anteriormente, el tamaño puede estar en MB o KB.