Je souhaite afficher la taille totale du dépôt dun projet hébergé sur GitHub sans avoir à le cloner. Parfois, je fais ceci:

  1. Commencez à cloner un dépôt GitHub

    Réception dobjets: 45% (218 / 476), 5,50 Mio | 27 Kio / s

    Vous avez déjà vidé 5 Mo? Suspendre …

    ^Z 
  2. Clonez le référentiel sur un serveur avec une connexion Internet normale juste pour voir sa taille.

  3. Continuer (ou abandonner) le clonage local.

Comment puis-je connaître la taille du dépôt à lavance? Dans la recherche, je vois la taille du référentiel, mais pas ailleurs.

Commentaires

Réponse

Utilisation de lAPI Github:

$ echo https://github.com/hlamer/enki.git | perl -ne "print $1 if m!([^/]+/[^/]+?)(?:\.git)?$!" | xargs -i curl -s -k https://api.github.com/repos/"{}" | grep size "size": 284, 

Commentaires

  • Sur mac, il ny a ' aucun -i paramètre pour xargs, donc ' s: $ echo https://github.com/hlamer/enki.git | perl -ne 'print $1 if m!([^/]+/[^/]+?)(?:\.git)?$!' | xargs -I{} curl -s -k https://api.github.com/repos/'{}' | grep size
  • et cest la taille en … kilo-octets?

Réponse

Dans Firefox, vous pouvez utiliser le module complémentaire GitHub Repository Size .

barre dinformations github

Commentaires

  • Pourquoi le vote défavorable? Lextension ou le script utilisateur ne fonctionne pas ou contient-il des logiciels malveillants?
  • Non, tout fonctionne très bien …

Réponse

Utilisez le navigateur Google Chrome et installez cette extension

Ajoute la taille du dépôt à la page daccueil:

Capture décran de lextension GitHub Repo Size

Réponse

curl \ -H "Accept: application/vnd.github.v3+json" \ -s https://api.github.com/repos/torvalds/linux | \ jq ".size" | \ numfmt --to=iec --from-unit=1024 

Explication:

  1. récupérer les informations du dépôt à partir de github api à laide de curl

Nous obtenons une réponse json comme celle-ci:

{ "id": 2325298, "node_id": "MDEwOlJlcG9zaXRvcnkyMzI1Mjk4", "name": "linux", "full_name": "torvalds/linux", "private": false, ... "size": 3018913, <<<This is what we need "stargazers_count": 99224, "watchers_count": 99224, ... } 
  1. Dirigez la réponse json vers jq parser et recherchez la paire attribut-valeur requise.

    . indique la racine du corps json et size est lattr requis ibute du corps racine

Résultat (la taille en ko):

3018913 
  1. Dirigez ensuite la sortie vers numfmt
$ man numfmt --to=[UNIT] iec 1K = 1024, 1M = 1048576, ... --from-unit=N specify the input unit size (instead of the default 1) (it basically tells that the input is in kB(1024B) insted of B 

Sortie:

2.9G 

Pour les dépôts privés, passez un jeton comme en-tête

-H "Authorization: token GITHUB_TOKEN" 

remplacer GITHUB_TOKEN avec un jeton github qui a accès aux dépôts privés

https://command-not-found.com/jq

https://command-not-found.com/numfmt

Commentaires

  • Pouvez-vous expliquer ce que fait cette commande? Comment cela aide-t-il dans cette situation? Merci
  • Il récupère les métadonnées du référentiel en utilisant curl, puis extrait " size " de celui-ci en utilisant jq, puis convertit les octets bruts en taille de fichier lisible par lhomme avec numfmt.

Réponse

On peut y parvenir en utilisant la console du navigateur et en exécutant

fetch("https://api.github.com/repos/[USERNAME]/[REPO]") .then(v => v.json()).then((function(v){ console.log(v["size"] + "KB") }) ) 

Prenons un exemple pratique.

En supposant que lon veuille trouver la taille de ce dépôt en utilisant Firefox.

Ouvrez la console avec Ctrl + Shift + K.

Collez ensuite le code suivant

fetch("https://api.github.com/repos/goncaloperes/TimeSeries") .then(v => v.json()).then((function(v){ console.log(v["size"] + "KB") }) ) 

Appuyez sur Entrée et on recevra la taille du dépôt comme on peut le voir dans limage ci-dessous.

entrez la description de limage ici

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *