Подтвердить что ты не робот

Посмотрите размер репозитория github до его клонирования?

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

4b9b3361

Ответ 1

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

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

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

Обновление

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

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

Ответ 2

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

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

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

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

Ответ 4

@larowlan отличный образец кода. С новым API-интерфейсом GitHub V3 необходимо обновить инструкцию curl. Кроме того, вход в систему больше не требуется:

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

Ответ 5

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

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

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

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

Ответ 6

Подводя итоги решениям @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

Ответ 7

вам нужно следовать API GitHub, см. документацию здесь для получения подробной информации о вашем хранилище. это требует, чтобы вы сделали запрос на получение как

GET/repos/: owner/: repo

вам нужно заменить две вещи

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

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

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

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

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