Desejo ver o tamanho total do repo de um projeto hospedado no GitHub sem precisar cloná-lo. Às vezes eu faço isso:

  1. Comece a clonar algum repositório GitHub

    Recebendo objetos: 45% (218 / 476), 5,50 MiB | 27 KiB / s

    Já esgotou 5 MB? Suspender …

    ^Z 
  2. Clone o repositório em um servidor com uma conexão normal de internet apenas para veja seu tamanho.

  3. Continue (ou aborte) a clonagem local.

Como eu descubro o tamanho do repositório com antecedência? Na pesquisa, vejo o tamanho do repositório, mas não em outros lugares.

Comentários

Resposta

Usando a API do Github:

$ echo https://github.com/hlamer/enki.git | perl -ne "print $1 if m!([^/]+/[^/]+?)(?:\.git)?$!" | xargs -i curl -s -k https://api.github.com/repos/"{}" | grep size "size": 284, 

Comentários

  • No mac, há ' s não -i parâmetro para xargs, então ' s: $ echo https://github.com/hlamer/enki.git | perl -ne 'print $1 if m!([^/]+/[^/]+?)(?:\.git)?$!' | xargs -I{} curl -s -k https://api.github.com/repos/'{}' | grep size
  • e esse é o tamanho em … kilobytes?

Resposta

No Firefox, você pode usar o complemento Tamanho do repositório GitHub .

barra de informações do github

Comentários

  • Por que o voto negativo? A extensão ou script de usuário não funciona ou contém malware?
  • Não, tudo funciona bem …

Resposta

Use o navegador Google Chrome e instale esta extensão

Adiciona o tamanho do repo à página inicial:

Captura de tela da extensão do tamanho do repositório GitHub

Resposta

curl \ -H "Accept: application/vnd.github.v3+json" \ -s https://api.github.com/repos/torvalds/linux | \ jq ".size" | \ numfmt --to=iec --from-unit=1024 

Explicação:

  1. buscar informações de repositório de github api usando curl

Recebemos uma resposta json como esta:

{ "id": 2325298, "node_id": "MDEwOlJlcG9zaXRvcnkyMzI1Mjk4", "name": "linux", "full_name": "torvalds/linux", "private": false, ... "size": 3018913, <<<This is what we need "stargazers_count": 99224, "watchers_count": 99224, ... } 
  1. Canalize a resposta json para analisador jq e encontre o par de valor-atributo necessário.

    . indica a raiz do corpo json e size é o atributo obrigatório ibute do corpo raiz

Saída (o tamanho em KB):

3018913 
  1. Em seguida, canalize a saída para numfmt
$ man numfmt --to=[UNIT] iec 1K = 1024, 1M = 1048576, ... --from-unit=N specify the input unit size (instead of the default 1) (it basically tells that the input is in kB(1024B) insted of B 

Resultado:

2.9G 

Para repositórios privados, passe um token como cabeçalho

-H "Authorization: token GITHUB_TOKEN" 

Substitua GITHUB_TOKEN com um token github que tem acesso a repositórios privados

https://command-not-found.com/jq

https://command-not-found.com/numfmt

Comentários

  • Você pode explicar o que este comando faz? Como isso ajuda nessa situação? Obrigado
  • Ele busca metadados do repositório usando curl e, em seguida, extrai " tamanho " usando jq e, a seguir, converte bytes brutos em tamanho de arquivo legível por humanos com numfmt.

Resposta

Pode-se fazer isso usando o console do navegador e executando

fetch("https://api.github.com/repos/[USERNAME]/[REPO]") .then(v => v.json()).then((function(v){ console.log(v["size"] + "KB") }) ) 

Vamos considerar um exemplo prático.

Supondo que se queira encontrar o tamanho deste repositório usando o Firefox.

Abra o console com Ctrl + Shift + K.

Em seguida, cole o seguinte código

fetch("https://api.github.com/repos/goncaloperes/TimeSeries") .then(v => v.json()).then((function(v){ console.log(v["size"] + "KB") }) ) 

Pressione enter e receberá o tamanho do repo como pode ser visto na imagem abaixo.

insira a descrição da imagem aqui

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *