Existe uma maneira de ver o tamanho de um repositório Git no GitHub antes de decidir cloná-lo?
Parece uma estatística realmente óbvia / básica, mas não consigo encontrar como vê-la no GitHub.
Existe uma maneira de ver o tamanho de um repositório Git no GitHub antes de decidir cloná-lo?
Parece uma estatística realmente óbvia / básica, mas não consigo encontrar como vê-la no GitHub.
Respostas:
Existe uma maneira de acessar essas informações através da API do GitHub .
GET /repos/:user/:repo
Ao recuperar informações sobre um repositório, uma propriedade nomeada size
é avaliada com o tamanho de todo o repositório (incluindo todo o seu histórico), em kilobytes.
Por exemplo, o repositório Git pesa cerca de 124 MB. A size
propriedade da carga útil JSON retornada é avaliada 124283
.
O tamanho é realmente expresso em kilobytes, com base no uso do disco do repositório bare do lado do servidor. No entanto, para evitar desperdiçar muito espaço com repositórios com uma rede grande, o GitHub conta com o Git Alternates . Nesta configuração, o cálculo do uso do disco no repositório vazio não leva em consideração o armazenamento de objetos compartilhados e, portanto, retorna um valor "incompleto" por meio da chamada da API.
Esta informação foi fornecida pelo suporte do GitHub.
$ curl -u "{:username}" https://api.github.com/repos/{:organization}/{:repository}
. Consulte developer.github.com/v3/#authentication
Se você é o proprietário do repositório, poderá encontrar o tamanho exato abrindo Configurações da conta → Repositórios ( https://github.com/settings/repositories ), e o tamanho do repositório será exibido ao lado de sua designação.
Se você não possui o repositório, pode bifurcá-lo e depois verificar no mesmo local.
Um pouco hacky: use a download as a zip file
opção, leia o tamanho do arquivo indicado e cancele-o.
Não me lembro se o download como um zip já funcionou, mas, de qualquer forma, fazer isso agora apenas baixa o ramo selecionado no momento sem histórico.
Settings > Repositories
, mas encontrei o tamanho do repositório Account Settings > Repositories
fora da sua home page do git. Obviamente, isso funciona apenas com repositórios que você possui (ou bifurca).
Se você usa o navegador Google Chrome, pode instalar a extensão Tamanho do Repositório do GitHub .
Repo aqui: https://github.com/harshjv/github-repo-size
@larowlan ótimo código de exemplo. Com a nova API GitHub V3, a instrução curl precisa ser atualizada. Além disso, o login não é mais necessário:
curl https://api.github.com/repos/$2/$3 2> /dev/null | grep size | tr -dc '[:digit:]'
Por exemplo:
curl https://api.github.com/repos/dotnet/roslyn 2> /dev/null | grep size | tr -dc '[:digit:]'
retorna 931668
(em KB), que é quase um GB.
Para fazer isso com curl (sudo apt-get curl) e json pretty (sudo gem install jsonpretty json):
curl -u "YOURGITHUBUSERNAME" http://github.com/api/v2/json/repos/show/OWNER/REPOSITORY |
jsonpretty
Substitua YOURGITHUBUSERNAME pelo seu nome de usuário do GitHub (veja a figura).
Substitua OWNER pelo nome de usuário Git do proprietário do repositório. Substitua REPOSITORY pelo nome do repositório.
Ou como um bom script Bash (cole-o em um arquivo chamado 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
Use-o assim:
gitrepo-info larowlan pisi reel
Isso me dará informações sobre o repositório pisi / reel no GitHub.
Você precisa seguir a API do GitHub. Veja a documentação aqui para todos os detalhes sobre seu repositório. Requer que você faça uma solicitação GET como:
GET / repos /: owner /: repository
Você precisa substituir duas coisas:
Por exemplo, meu nome de usuário maheshmnj e eu possuo um repositório, flutter-ui-nice , portanto minha URL GET será:
https://api.github.com/repos/maheshmnj/flutter-ui-nice
Ao fazer uma solicitação GET, você será inundado com alguns dados JSON e, provavelmente, na linha número 78, deverá ver uma chave chamada size que retornará o tamanho do repositório.
Dica: Ao trabalhar com JSON, sugiro que você adicione um plug-in que formate os dados JSON para facilitar a leitura do JSON. Instale o plugin .
size
chave na resposta, não a linha 78. Sem mencionar que diferentes formatadores terão quebras de linha diferentes em lugares diferentes, deixando os dados desejados em um número de linha diferente.
probably
vê-la na linha no 78, o que indica que você deveria ver a chave de tamanho em torno de 78 , segunda coisa: se o tamanho das APIs do github não for exato, acho que você não encontrará algo mais preciso do que as APIs do github.
Para resumir as soluções @larowlan, @VMTrooper e @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
Para um repositório privado, você precisará obter um token de acesso pessoal em https://github.com/settings/tokens .
Em seguida, use o seguinte comando curl para obter os detalhes (substituindo os valores por [token], [owner] e [name]):
curl -u git:[token] https://api.github.com/repos/[owner]/[name] 2> /dev/null | grep size
Como mencionado anteriormente, o tamanho pode estar em MB ou KB.