web-dev-qa-db-fra.com

Voir la taille d'un repo github avant de le cloner?

Existe-t-il un moyen de voir la taille d’un dépôt Git sur github avant de décider de le cloner? Cela semble être une statistique évidente/fondamentale, mais je ne trouve pas du tout comment le voir sur github.

281
jhabbott

Il existe un moyen d'accéder à ces informations via = GitHub API .

Lors de la récupération d'informations sur un référentiel, une propriété nommée size est définie par la taille de l'ensemble du référentiel (y compris son historique), en kilo-octets.

Par exemple, le référentiel Git pèse environ 124 Mo. La propriété size de la charge JSON renvoyée est évaluée à 124283.

Mise à jour

La taille est en effet exprimée en kilo-octets en fonction de l'utilisation du disque du référentiel nu côté serveur. Cependant, afin d’éviter de gaspiller trop d’espace avec des référentiels avec un grand réseau, GitHub s’appuie sur Git Alternates. Dans cette configuration, le calcul de l'utilisation du disque par rapport au référentiel nu ne prend pas en compte le magasin d'objets partagé et renvoie donc une valeur "incomplète" via l'appel d'API.

Cette information a été donnée par le support GitHub.

240
nulltoken

Si vous possédez le référentiel, vous pouvez trouver la taille exacte en ouvrant votre Account Settings > Repositories ( https://github.com/settings/repositories ). La taille du référentiel s'affiche à côté de son nom. la désignation.

Si vous ne possédez pas le référentiel, vous pouvez le bifurquer puis le cocher au même endroit.

Un peu hacky: utilisez l'option download as a Zip file, lisez la taille de fichier indiquée, puis annulez-la.

Je ne me souviens pas si le téléchargement en tant que Zip a déjà fonctionné, mais dans tous les cas, le faire maintenant ne télécharge que la branche actuellement sélectionnée, sans historique.

89
CoatedMoose

Si vous utilisez le navigateur Google Chrome, vous pouvez installer l'extension Taille du référentiel GitHub .

enter image description here

Repo ici: https://github.com/harshjv/github-repo-size

66
Bigwave

@larowlan excellent exemple de code. Avec la nouvelle API GitHub V3, l'instruction curl doit être mise à jour. De plus, le login n'est plus nécessaire:

curl https://api.github.com/repos/$2/$3 2> /dev/null | grep size | tr -dc '[:digit:]'
15
VMTrooper

Pour ce faire, avec curl (Sudo apt-get curl) et json pretty (Sudo gem, installez jsonpretty json)

curl -u "YOURGITHUBUSERNAME" http://github.com/api/v2/json/repos/show/OWNER/REPO |
  jsonpretty

remplacez YOURGITHUBUSERNAME par votre nom d’utilisateur git hub (voir figure). remplace OWNER par le nom d'utilisateur git du propriétaire du référentiel, remplace REPO par le nom du référentiel.

Ou en tant que script Nice bash (collez-le dans un fichier nommé 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

utiliser comme si

gitrepo-info larowlan pisi reel

Cela me donnera des informations sur le repo pisi/reel sur github.

8
larowlan

Pour résumer les solutions @larowlan, @VMTrooper et @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
0
golem

vous devez suivre l'API github voir la documentation ici pour tous les détails concernant votre référentiel, vous devez faire une demande get as

GET/repos /: propriétaire /: repo

vous devez remplacer deux choses

  1. : owner - nom d'utilisateur de la personne à qui appartient le référentiel
  2. : repo - Nom du référentiel

par exemple mon nom d'utilisateur maheshmnj , je possède un référentiel flutter-ui-Nice donc mon url sera

https://api.github.com/repos/maheshmnj/flutter-ui-Nice

en faisant une requête get, vous serez submergé de données json et probablement sur la ligne 78, vous devriez voir une clé nommée size qui retournera la taille du référentiel.

Conseil: lorsque vous travaillez avec Json, je vous suggère d’ajouter un plug-in qui formate les données Json pour faciliter la lecture de Json. installer le plugin

0
maheshmnj