Есть ли способ увидеть, насколько большой репозиторий git находится на github, прежде чем вы решите клонировать его? Это кажется действительно очевидной/базовой статистикой, но я не могу найти, как это увидеть на github вообще.
Посмотрите размер репозитория github до его клонирования?
Ответ 1
Есть способ получить доступ к этой информации через GitHub API.
- Синтаксис:
GET /repos/:user/:repo
- Пример: https://api.github.com/repos/git/git
При извлечении информации о хранилище свойство с именем 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, но в любом случае сейчас загружает только выбранную в данный момент ветку без истории.
Ответ 3
Если вы пользуетесь браузером Google Chrome, вы можете установить расширение Расширение размера репозитория GitHub.
Репо здесь: https://github.com/harshjv/github-repo-size
Ответ 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
вам нужно заменить две вещи
- : owner - имя пользователя, которому принадлежит репо
- : repo - имя хранилища
например, мое имя пользователя maheshmnj, у меня есть хранилище flutter-ui-nice поэтому мой URL-адрес будет
https://api.github.com/repos/maheshmnj/flutter-ui-nice
при выполнении запроса get вы будете заполнены некоторыми данными json и, вероятно, в строке № 78 вы увидите ключ с именем size, который вернет размер хранилища.
Совет: При работе с Json я предлагаю вам добавить плагин, который форматирует данные Json, чтобы упростить чтение json. установить плагин