@KennyTM pergunta muito semelhante, sim, mas isso é específico para o github e não para qualquer método que use apenas o protocolo git.
jhabbott
1
Para sua informação, confira esta extensão do Chrome, que adiciona automaticamente o tamanho do repositório ao resumo do repositório do GitHub, github.com/harshjv/github-repo-size . UPDATE: adicionou isso como resposta
Harsh Vakharia
Aqui está uma dica: Meu maior repositório absoluto contém apenas imagens de vários formatos, é um repositório de ícones de "obras de arte" que eu uso em vários aplicativos. No entanto, o GitHub reporta o tamanho como 0. Portanto, suponho que ele considere apenas o tamanho dos arquivos de origem conhecidos e não considere tipos de arquivos desconhecidos.
Jerry Dodge
Respostas:
276
Existe uma maneira de acessar essas informações através da API do GitHub .
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 sizepropriedade da carga útil JSON retornada é avaliada 124283.
Atualizar
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.
Não é o tamanho em MB agora -> Não é tão claro, parece que depende do repositório que está sendo consultado ... Pequenos repositórios expõem o tamanho em bytes, grandes em megabytes. Abri um problema no suporte do GitHub. Atualizarei a resposta assim que o problema for encerrado.
Nulo14
6
Isso não parece funcionar para repositórios particulares. Estou esquecendo de algo? Obrigado!
@ nulltoken Alguma resposta à pergunta sobre kB / MB etc?
Nealmcb 13/06/19
2
Apenas bifurcada um repo (09 de setembro de 2018) e é kB, não MB
Jacob Stamm
109
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 fileopçã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.
Não se deve levar em consideração a compactação zip? O código fonte e os arquivos de texto podem ser compactados em até 60%, eu acho.
ffledgling
Não conheço uma maneira de verificar a taxa de compactação do zip sem concluir o download. Claro que você pode concluir o download e verificar a taxa de compactação. No entanto, nesse ponto, você também pode descompactar e verificar o tamanho do repositório diretamente. Realmente depende da precisão que você precisa ser. E se você puder fazer o download do repositório para verificar.
precisa saber é o seguinte
1
Não consegui encontrá-lo Settings > Repositories, mas encontrei o tamanho do repositório Account Settings > Repositoriesfora da sua home page do git. Obviamente, isso funciona apenas com repositórios que você possui (ou bifurca).
Modulitos
As configurações da conta das organizações não parecem mostrar o tamanho do repositório, portanto, somente se você possui um repositório como usuário e não como organização?
Bennett Brown
2
O tamanho do arquivo zip não indica o tamanho real do repositório: 1) inclui apenas uma captura instantânea do repositório em uma determinada revisão sem histórico e 2) os repositórios Git são armazenados como arquivos de pacote compactados, não duplicatas da loja etc.
@BaneeIshaqueK não é o mesmo, mas mostra o tamanho do
repositório
1
ATUALIZAÇÃO Agora, funciona perfeitamente mesmo em repositórios particulares, desde que você forneça o token do Github.
Siddhant Rimal
2
Ainda não confiável, ele usa a API do GitHub, que não informa o tamanho correto. Eu tenho um repositório com nada além de imagens (sem código), e a API relata o tamanho como 0, embora seja o maior repositório que tenho. Essa extensão nem me mostra o tamanho desse repositório específico (provavelmente porque vê 0).
Jerry Dodge
19
@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:
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:
: owner - o nome de usuário da pessoa que possui o repositório
: repository - O nome do repositório
Por exemplo, meu nome de usuário maheshmnj e eu possuo um repositório, flutter-ui-nice , portanto minha URL GET será:
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 .
A) Como muitos relatam, esse tamanho não é preciso nem confiável. B) Mesmo assim, suas anotações sobre a leitura visual do JSON, o número da linha e a formatação ... tudo sem sentido. O JSON não se destina a humanos, mas sim a computadores. Você deve mencionar a leitura da sizechave 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.
Jerry Dodge
@JerryDodge a primeira coisa que você deve ler com atenção a resposta que eu mencionei `` `` você deve ver uma chave chamada tamanho `` '' e eu disse que você deveria probablyvê-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.
maheshmnj 26/03
Eu tenho um repositório de imagens. Imagens são dados binários. Não há arquivos de texto neste repositório. O GitHub relata em todos os lugares que consome 0 bytes. Até o site / plugin.
Jerry Dodge
0
Para resumir as soluções @larowlan, @VMTrooper e @vahid chakoshy:
#!/usr/bin/env bashif["$#"-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 1fi
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 é avaliada124283
.Atualizar
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.
fonte
$ curl -u "{:username}" https://api.github.com/repos/{:organization}/{:repository}
. Consulte developer.github.com/v3/#authenticationSe 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 adownload 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.
fonte
Settings > Repositories
, mas encontrei o tamanho do repositórioAccount 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
fonte
@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:
Por exemplo:
retorna
931668
(em KB), que é quase um GB.fonte
Para fazer isso com curl (sudo apt-get curl) e json pretty (sudo gem install jsonpretty json):
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):
Use-o assim:
Isso me dará informações sobre o repositório pisi / reel no GitHub.
fonte
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á:
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 .
fonte
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:
fonte
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]):
Como mencionado anteriormente, o tamanho pode estar em MB ou KB.
fonte