No Github, há uma maneira de ver o número de downloads de um repositório?
No Github, há uma maneira de ver o número de downloads de um repositório?
Respostas:
Atualização 2019:
A resposta de Ustin aponta para:
/repos/:owner/:repo/traffic/clones
, para obter o número total de clones e detalhamento por dia ou semana, mas: apenas nos últimos 14 dias./repos/:owner/:repo/releases/:release_id
para obter o número de downloads de seus ativos (arquivos anexados ao release), campo download_count
mencionado abaixo, mas, como comentado , apenas para os 30 releases mais recentes.Atualização 2017
Você ainda pode usar a API do GitHub para obter a contagem de downloads de seus lançamentos (o que não é exatamente o que foi solicitado).
Consulte o campo " Obter um único release " download_count
.
Não há mais uma tela de tráfego mencionando o número de clones de recompra.
Em vez disso, você precisa contar com serviços de terceiros como:
www.netguru.co/gititback
), mas mesmo isso não inclui o número de clones.githubstats0
, mencionado abaixo por Aveek Saha .
www.somsubhra.com/github-release-stats , mencionado abaixo .
Por exemplo, aqui está o número da versão mais recente do git para Windows
Atualização agosto de 2014
O GitHub também propõe o número de clones para repo no Gráfico de Tráfego:
Veja " Clone Graphs "
Atualização de outubro de 2013
Conforme mencionado abaixo por andyberry88 , e como eu detalhei em julho passado , o GitHub agora propõe lançamentos (veja sua API ), que possui um download_count
campo .
Michele Milidoni , em sua resposta (votada) , usa esse campo em seu script python .
( extrato muito pequeno )
c.setopt(c.URL, 'https://api.github.com/repos/' + full_name + '/releases')
for p in myobj:
if "assets" in p:
for asset in p['assets']:
print (asset['name'] + ": " + str(asset['download_count']) +
" downloads")
Resposta original (dezembro de 2010)
Não tenho certeza de que você possa ver essas informações (se elas estiverem gravadas), porque não as vejo na API de repositório do GitHub :
$ curl http://github.com/api/v2/yaml/repos/show/schacon/grit
---
repository:
:name: grit
:owner: schacon
:source: mojombo/grit # The original repo at top of the pyramid
:parent: defunkt/grit # This repo's direct parent
:description: Grit is a Ruby library for extracting information from a
git repository in an object oriented manner - this fork tries to
intergrate as much pure-ruby functionality as possible
:forks: 4
:watchers: 67
:private: false
:url: http://github.com/schacon/grit
:fork: true
:homepage: http://grit.rubyforge.org/
:has_wiki: true
:has_issues: false
:has_downloads: true
Você só pode ver se ele possui downloads ou não.
download_count
campo da API lançamento, que deve incluir o número de downloads de libertação (que nem sempre são zip, e não são clones)
git clone
instâncias. Verifique com o suporte do GitHub para confirmação.
Eu escrevi um pequeno aplicativo da Web em javascript para mostrar a contagem do número de downloads de todos os ativos nas versões disponíveis de qualquer projeto no Github. Você pode experimentar o aplicativo aqui: http://somsubhra.github.io/github-release-stats/
O GitHub descontinuou o suporte ao download e agora suporta 'Lançamentos' - https://github.com/blog/1547-release-your-software . Para criar uma versão, use a interface do usuário do GitHub ou crie uma tag anotada (http: // git-scm.com/book/ch2-6.html) e adicione notas de versão no GitHub. Você pode fazer upload de binários, ou 'ativos', para cada release.
Depois de ter alguns lançamentos, a API do GitHub suporta a obtenção de informações sobre eles e seus ativos.
curl -i \
https://api.github.com/repos/:owner/:repo/releases \
-H "Accept: application/vnd.github.manifold-preview+json"
Procure a entrada 'download_count'. Há mais informações em http://developer.github.com/v3/repos/releases/ . Esta parte da API ainda está no período de visualização ATM, portanto pode ser alterada.
A API de lançamentos do GitHub agora está fora do período de visualização, portanto o cabeçalho 'Accept' não é mais necessário - http://developer.github.com/changes/2013-11-04-releases-api-is-official/
No entanto, não fará mal continuar adicionando o cabeçalho 'Aceitar'.
downloads
campo nos ativos (pelo menos usando esta técnica)?
download_count
é o campo que indica o número de downloads - por exemplo, em api.github.com/repos/twbs/bootstrap/releases . Vale ressaltar que apenas 'releases' aparecerão nesta lista, as tags que aparecerem na página de releases de um repositório não aparecerão na listagem da API, consulte developer.github.com/v3/repos/releases . Por exemplo, github.com/jquery/jquery/releases lista várias tags na seção releases, mas uma lista vazia é retornada para api.github.com/repos/jquery/jquery/releases .
count=0
)? Ou mostra apenas o campo para solicitações de clone? Veja isto, sem download_count
: api.github.com/repos/demisjohn/pytrimsetup/releases . A página do github está aqui: github.com/demisjohn/pyTRIMSetup/releases
bootstrap-XYZ-dist.zip
ativo ao qual o download_count
campo se refere. Se você quiser ver quantas pessoas estão baixando uma versão, é necessário fazer o upload de um zip de liberação. Tanto quanto sei, não há como ver quantas pessoas clonaram / fizeram o download de um arquivo morto por meio da API. A exibição de gráficos (de stackoverflow.com/a/4339085/2634854 acima) pode fornecer o que você está buscando.
Anteriormente, havia dois métodos de código de download no Github: clonar ou fazer o download como zip em um repositório .git ou fazer upload de um arquivo (por exemplo, um binário) para download posterior.
Ao baixar um repositório (clonar ou baixar como zip), o Github não conta o número de downloads por limitações técnicas. Clonar um repositório é uma operação somente leitura. Não há autenticação necessária. Essa operação pode ser realizada por meio de vários protocolos, incluindo HTTPS, o mesmo protocolo que a página da Web usa para mostrar o repositório no navegador. É muito difícil contar.
Consulte: http://git-scm.com/book/en/Git-on-the-Server-The-Protocols
Recentemente, o Github descontinuou a funcionalidade de download. Isso ocorreu porque eles entendem que o Github está focado na criação de software, e não na distribuição de binários.
Como mencionado, a API do GitHub retorna a contagem de downloads de lançamentos de arquivos binários. Desenvolvi um pequeno script para obter facilmente a contagem de downloads por linha de comando.
Muito tarde, mas aqui está a resposta que você deseja:
https://api.github.com/repos/ [git username] / [git project] /releases
Em seguida, localize o ID do projeto que você está procurando nos dados. Deve estar perto do topo, próximo aos URLs. Em seguida, navegue até
https://api.github.com/repos/ [git username] / [git project] /releases/ [id] / assets
O campo chamado download_count é sua resposta.
EDIT: maiúsculas importam em seu nome de usuário e nome do projeto
{ "message": "Not Found", "documentation_url": "https://developer.github.com/v3" }
A API do Github não fornece mais as informações necessárias. Dê uma olhada na página de lançamentos , mencionada na resposta de Stan Towianski . Conforme discutimos nos comentários a essa resposta, a API do Github apenas relata os downloads de um dos três arquivos que ele oferece por release.
Eu verifiquei as soluções, fornecidas em outras respostas a estas perguntas. A resposta de Vonc apresenta a parte essencial da solução de Michele Milidoni . Eu instalei o script gdc com o seguinte resultado
# ./gdc stant
mdcsvimporter.mxt: 37 downloads
mdcsvimporter.mxt: 80 downloads
How-to-use-mdcsvimporter-beta-16.zip: 12 downloads
Como você pode ver claramente, o gdc não informa a contagem de downloads dos arquivos tar.gz e zip.
Se você quiser verificar sem instalar nada, tente a página da Web em que Somsubhra instalou a solução, mencionada em sua resposta . Preencha 'stant' como nome de usuário do Github e 'mdcsvimporter2015' como nome do Repositório e você verá coisas como:
Download Info:
mdcsvimporter.mxt(0.20MB) - Downloaded 37 times.
Last updated on 2015-03-26
Infelizmente, mais uma vez, apenas um relatório sem os downloads dos arquivos tar.gz e zip. Examinei cuidadosamente as informações que a API do Github retorna, mas elas não são fornecidas em nenhum lugar. O download_count que a API retorna está longe de ser completo hoje em dia.
Para verificar o número de vezes que um arquivo / pacote de lançamento foi baixado, acesse https://githubstats0.firebaseapp.com
Ele fornece uma contagem total de downloads e uma divisão do total de downloads por tag de lançamento.
Acabei escrevendo um script de raspador para encontrar minha contagem de clones:
#!/bin/sh
#
# This script requires:
# apt-get install html-xml-utils
# apt-get install jq
#
USERNAME=dougluce
PASSWORD="PASSWORD GOES HERE, BE CAREFUL!"
REPO="dougluce/node-autovivify"
TOKEN=`curl https://github.com/login -s -c /tmp/cookies.txt | \
hxnormalize | \
hxselect 'input[name=authenticity_token]' 2>/dev/null | \
perl -lne 'print $1 if /value=\"(\S+)\"/'`
curl -X POST https://github.com/session \
-s -b /tmp/cookies.txt -c /tmp/cookies2.txt \
--data-urlencode commit="Sign in" \
--data-urlencode authenticity_token="$TOKEN" \
--data-urlencode login="$USERNAME" \
--data-urlencode password="$PASSWORD" > /dev/null
curl "https://github.com/$REPO/graphs/clone-activity-data" \
-s -b /tmp/cookies2.txt \
-H "x-requested-with: XMLHttpRequest" | jq '.summary'
Isso irá capturar os dados do mesmo ponto final que o gráfico de clones do Github usa e cuspir os totais a partir dele. Os dados também incluem contagens por dia, substitua .summary
por apenas .
para ver aquelas bem impressas.
Com base nas respostas VonC e Michele Milidoni, criei este bookmarklet que exibe estatísticas de downloads de binários liberados hospedados no github.
Nota: Devido a problemas nos navegadores relacionados à implementação da Política de Segurança de Conteúdo, os bookmarklets podem violar temporariamente algumas diretivas do CSP e basicamente podem não funcionar corretamente quando executados no github enquanto o CSP está ativado.
Embora seja altamente desencorajado, você pode desativar o CSP no Firefox como uma solução temporária. Abra about: config e defina security.csp.enable como false.
Para tentar deixar isso mais claro:
para este projeto do github: stant / mdcsvimporter2015
https://github.com/stant/mdcsvimporter2015
com lançamentos em
https://github.com/stant/mdcsvimporter2015/releases
vá para http ou https: (observação adicionada "api." e "/ repos")
https://api.github.com/repos/stant/mdcsvimporter2015/releases
você obterá essa saída json e poderá procurar por "download_count":
"download_count": 2,
"created_at": "2015-02-24T18:20:06Z",
"updated_at": "2015-02-24T18:20:07Z",
"browser_download_url": "https://github.com/stant/mdcsvimporter2015/releases/download/v18/mdcsvimporter-beta-18.zip"
ou na linha de comando do:
wget --no-check-certificate https://api.github.com/repos/stant/mdcsvimporter2015/releases
Como já foi dito, você pode obter informações sobre seus Releases por meio da API .
Para quem usa o WordPress, desenvolvi este plugin: Downloads de versão do GitHub . Ele permite que você obtenha a contagem de downloads, links e mais informações para lançamentos de repositórios do GitHub.
Para resolver a questão original, o código curto [grd_count user="User" repo="MyRepo"]
retornará o número de downloads de um repositório. Esse número corresponde à soma de todos os valores da contagem de downloads de todas as versões de um repositório GitHub.
Exemplo:
Resposta de 2019:
Eu criei um aplicativo Web que mostra as estatísticas de lançamento do GitHub em um formato limpo: https://hanadigital.github.io/grev/
Para quem precisa da solução em Python, escrevi um script simples.
ghstats.py [user] [repo] [tag] [options]
Aqui está uma solução python usando o pip install PyGithub
pacote
from github import Github
g = Github("youroauth key") #create token from settings page
for repo in g.get_user().get_repos():
if repo.name == "yourreponame":
releases = repo.get_releases()
for i in releases:
if i.tag_name == "yourtagname":
for j in i.get_assets():
print("{} date: {} download count: {}".format(j.name, j.updated_at, j._download_count.value))
tar.gz
ezip
arquivos).