Посмотрите размер репозитория github, прежде чем его клонировать? - PullRequest
274 голосов
/ 27 декабря 2011

Есть ли способ узнать, насколько велико git-репо на github, прежде чем вы решите его клонировать?Это похоже на действительно очевидную / основную статистику, но я вообще не могу найти, как ее увидеть на github.

Ответы [ 7 ]

238 голосов
/ 30 декабря 2011

Есть способ получить доступ к этой информации через GitHub API .

При извлечении информации о хранилище свойство с именем size оценивается размером всего хранилища (включая всю его историю) в килобайтах.

Например, репозиторий Git весит около 40 Мб.Свойство size возвращенной полезной нагрузки JSON оценивается как 40764.

Обновление:

Размер действительно выражается в килобайтах в зависимости от использования диска в голом репозитории на стороне сервера.,Однако, чтобы не тратить слишком много места на репозитории с большой сетью, GitHub использует Git Alternates .В этой конфигурации при расчете использования диска по пустому хранилищу не учитывается хранилище общих объектов и, следовательно, возвращается «неполное» значение через вызов API.

Эта информация была предоставлена ​​поддержкой GitHub.

84 голосов
/ 19 июня 2012

Если вы являетесь владельцем репо, вы можете узнать точный размер, открыв Account Settings > Repositories (https://github.com/settings/repositories),), и размер репо отображается рядом с его обозначением.

Если вы не являетесь владельцем репозитория, вы можете его разветвить, а затем проверить в том же месте.

Довольно хакерски: используйте опцию download as a zip file, прочитайте указанный размер файла и затем отмените его.

Я не помню, работала ли когда-либо загрузка в формате zip, но в любом случае при этом сейчас загружает только выбранную в данный момент ветку без истории.

66 голосов
/ 07 февраля 2017

Если вы используете браузер Google Chrome, вы можете установить Размер репозитория GitHub .

enter image description here

Репо здесь: https://github.com/harshjv/github-repo-size

15 голосов
/ 24 сентября 2013

@ larowlan отличный пример кода.С новым GitHub API V3 оператор curl должен быть обновлен.Также, логин больше не требуется:

curl https://api.github.com/repos/$2/$3 2> /dev/null | grep size | tr -dc '[:digit:]'
8 голосов
/ 08 марта 2012

Чтобы сделать это с помощью curl (sudo apt-get curl) и json pretty (sudo gem установите jsonpretty json)

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

замените YOURGITHUBUSERNAME вашим именем пользователя в git hub (см. Рисунок). замените OWNER на имя пользователя git владельца репо замените REPO на имя репо.

Или как хороший скрипт bash (вставьте его в файл с именем 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

использовать как так

gitrepo-info larowlan pisi reel

Это даст мне информацию о репо в Pisi / reel на github.

0 голосов
/ 04 марта 2019

вам нужно следовать API github, см. Документы здесь , чтобы узнать все подробности, касающиеся вашего репозитория. Требуется, чтобы вы запросили получение как

GET / repos /:владелец /: репо

вам необходимо заменить две вещи

  1. : владелец - имя пользователя лица, которому принадлежит репо
  2. : репо - имя хранилища

например, мое имя пользователя maheshmnj , у меня есть хранилище flutter-ui-nice так что мой get get url будет

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

при выполнении запроса get вы будете переполнены некоторыми данными json и, вероятно, в строке № 78 вы увидите ключ с именем size, который будетверните размер репозитория.

Совет: При работе с Json я предлагаю вам добавить плагин, который форматирует данные Json, чтобы упростить чтение json. установить плагин

0 голосов
/ 28 мая 2015

Суммируя решения @larowlan, @VMTrooper и @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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...