In Github, c'è un modo per vedere il numero di download per un repository?
In Github, c'è un modo per vedere il numero di download per un repository?
Risposte:
Aggiornamento 2019:
La risposta di Ustin punta a:
/repos/:owner/:repo/traffic/clones
, per ottenere il numero totale di cloni e analisi al giorno o alla settimana, ma: solo per gli ultimi 14 giorni./repos/:owner/:repo/releases/:release_id
per ottenere il numero di download delle risorse (file allegati alla versione), campo download_count
indicato di seguito, ma, come commentato , solo per le 30 versioni più recenti.Aggiornamento 2017
Puoi ancora utilizzare l' API GitHub per ottenere il conteggio dei download per le tue versioni (che non è esattamente quello che ti è stato chiesto)
Vedi " Ottieni una singola versione ", il download_count
campo.
Non esiste più una schermata del traffico che menziona il numero di cloni repo.
Invece, devi fare affidamento su servizi di terze parti come:
www.netguru.co/gititback
), ma anche questo non include il numero di cloni.githubstats0
, di seguito citato da Aveek Saha .
www.somsubhra.com/github-release-stats , di seguito indicato.
Ad esempio, ecco il numero dell'ultima versione di git per Windows
Aggiornamento agosto 2014
GitHub propone anche il numero di cloni per repository nel proprio grafico del traffico:
vedere " Grafici di cloni "
Aggiornamento ottobre 2013
Come menzionato di seguito da andyberry88 , e come ho dettagliato lo scorso luglio , GitHub ora propone rilasci (vedi la sua API ), che ha un download_count
campo .
Michele Milidoni , nella sua risposta (migliorata) , usa quel campo nel suo script Python .
( estratto molto piccolo )
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")
Risposta originale (dicembre 2010)
Non sono sicuro che tu possa vedere quelle informazioni (se sono registrate), perché non le vedo nell'API del repository 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
Puoi vedere solo se ha download o meno.
download_count
campo dell'API di rilascio, che dovrebbe includere il numero di download di rilascio (che non sono sempre zip e non sono cloni)
git clone
istanze. Verificare con il supporto GitHub per la conferma.
Ho scritto una piccola applicazione web in javascript per mostrare il conteggio del numero di download di tutte le risorse nelle versioni disponibili di qualsiasi progetto su Github. Puoi provare l'applicazione qui: http://somsubhra.github.io/github-release-stats/
GitHub ha deprecato il supporto per il download e ora supporta "Release" - https://github.com/blog/1547-release-your-software . Per creare una versione, utilizzare l'interfaccia utente di GitHub o creare un tag annotato (http: // git-scm.com/book/ch2-6.html) e aggiungere note di rilascio in GitHub. È quindi possibile caricare file binari o "risorse" per ogni versione.
Dopo aver rilasciato alcune versioni, l'API GitHub supporta l'acquisizione di informazioni su di esse e sui relativi asset.
curl -i \
https://api.github.com/repos/:owner/:repo/releases \
-H "Accept: application/vnd.github.manifold-preview+json"
Cerca la voce "download_count". Ulteriori informazioni su http://developer.github.com/v3/repos/releases/ . Questa parte dell'API è ancora nel bancomat del periodo di anteprima, quindi potrebbe cambiare.
L'API delle versioni di GitHub non è più disponibile nel periodo di anteprima, quindi l'intestazione "Accetta" non è più necessaria - http://developer.github.com/changes/2013-11-04-releases-api-is-official/
Tuttavia, non farà alcun male continuare ad aggiungere l'intestazione "Accetta".
downloads
campo nelle risorse (almeno usando questa tecnica)?
download_count
è il campo che indica il numero di download, ad esempio in api.github.com/repos/twbs/bootstrap/releases . Vale la pena notare che solo le "versioni" verranno visualizzate in questo elenco, i tag che compaiono nella pagina delle versioni di un repository non vengono visualizzati nell'elenco delle API, vedere developer.github.com/v3/repos/releases . Ad esempio github.com/jquery/jquery/releases elenca diversi tag nella sezione release ma viene restituito un elenco vuoto per api.github.com/repos/jquery/jquery/releases .
count=0
)? O mostra solo il campo per le richieste Clone? Vedi questo, senza download_count
: api.github.com/repos/demisjohn/pytrimsetup/releases . La pagina di github è qui: github.com/demisjohn/pyTRIMSetup/releases
bootstrap-XYZ-dist.zip
asset a cui si download_count
riferisce il campo. Se vuoi vedere quante persone stanno scaricando una versione, devi caricare una zip di rilascio. Per quanto ne so, non c'è modo di vedere quante persone hanno clonato / scaricato un archivio tramite l'API. La visualizzazione dei grafici (da stackoverflow.com/a/4339085/2634854 sopra) può darti quello che stai cercando.
In precedenza, in Github esistevano due metodi per scaricare il codice: clonare o scaricare come zip a .git repo o caricare un file (ad esempio un file binario) per il download successivo.
Quando si scarica un repository (clone o download come zip), Github non conta il numero di download per limitazioni tecniche. Clonare un repository è un'operazione di sola lettura. Non è richiesta l'autenticazione. Questa operazione può essere eseguita tramite molti protocolli, incluso HTTPS, lo stesso protocollo utilizzato dalla pagina Web per mostrare il repository nel browser. È molto difficile contarlo.
Vedi: http://git-scm.com/book/en/Git-on-the-Server-The-Protocols
Di recente, Github ha deprecato la funzionalità di download. Questo perché capiscono che Github è focalizzato nella creazione di software e non nella distribuzione di file binari.
Come accennato, l'API GitHub restituisce il conteggio dei download delle versioni dei file binari. Ho sviluppato un piccolo script per ottenere facilmente il conteggio dei download dalla riga di comando.
Molto tardi, ma ecco la risposta che vuoi:
https://api.github.com/repos/ [git username] / [git project] /releases
Successivamente, trova l'id del progetto che stai cercando nei dati. Dovrebbe essere vicino alla cima, vicino agli URL. Quindi, vai a
https://api.github.com/repos/ [git username] / [git project] /releases/ [id] / assets
Il campo denominato download_count è la tua risposta.
EDIT: i capitali contano nel tuo nome utente e nel nome del progetto
{ "message": "Not Found", "documentation_url": "https://developer.github.com/v3" }
L'API Github non fornisce più le informazioni necessarie. Dai un'occhiata alla pagina dei comunicati , menzionata nella risposta di Stan Towianski . Come discusso nei commenti a tale risposta, l'API di Github riporta solo i download di 1 dei tre file offerti per ogni versione.
Ho verificato le soluzioni, fornite in alcune altre risposte a queste domande. La risposta di Vonc presenta la parte essenziale della soluzione di Michele Milidoni . Ho installato il suo script gdc con il seguente risultato
# ./gdc stant
mdcsvimporter.mxt: 37 downloads
mdcsvimporter.mxt: 80 downloads
How-to-use-mdcsvimporter-beta-16.zip: 12 downloads
Come puoi vedere chiaramente, gdc non riporta il conteggio dei download dei file tar.gz e zip.
Se si desidera verificare senza installare nulla, provare la pagina Web in cui Somsubhra ha installato la soluzione, menzionata nella sua risposta . Inserisci 'stant' come nome utente Github e 'mdcsvimporter2015' come nome del repository e vedrai cose come:
Download Info:
mdcsvimporter.mxt(0.20MB) - Downloaded 37 times.
Last updated on 2015-03-26
Purtroppo, ancora una volta solo un rapporto senza i download dei file tar.gz e zip. Ho esaminato attentamente le informazioni restituite dall'API di Github, ma non sono fornite da nessuna parte. Il download_count restituito dall'API è tutt'altro che completo al giorno d'oggi.
Per verificare il numero di volte in cui è stato scaricato un file / pacchetto di rilascio, è possibile visitare il sito Web https://githubstats0.firebaseapp.com
Ti dà un conteggio totale dei download e una suddivisione dei download totali per tag di rilascio.
Ho finito per scrivere una sceneggiatura raschietto per trovare il mio conteggio dei cloni:
#!/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'
Questo prenderà i dati dallo stesso endpoint utilizzato dal grafico clone di Github e ne sputerà i totali. I dati includono anche i conteggi giornalieri, sostituisci .summary
con solo .
per vedere quelli abbastanza stampati.
Basato sulle risposte di VonC e Michele Milidoni, ho creato questo bookmarklet che mostra le statistiche di download dei file binari rilasciati ospitati da github.
Nota: a causa di problemi con i browser relativi all'implementazione delle Norme sulla sicurezza dei contenuti, i bookmarklet possono violare temporaneamente alcune direttive CSP e fondamentalmente potrebbero non funzionare correttamente durante l'esecuzione su Github mentre CSP è abilitato.
Sebbene sia altamente scoraggiato, è possibile disabilitare CSP in Firefox come soluzione temporanea. Apri about: config e imposta security.csp.enable su false.
Per provare a renderlo più chiaro:
per questo progetto github: stant / mdcsvimporter2015
https://github.com/stant/mdcsvimporter2015
con versioni su
https://github.com/stant/mdcsvimporter2015/releases
vai su http o https: (nota aggiunta "api." e "/ repos")
https://api.github.com/repos/stant/mdcsvimporter2015/releases
otterrai questo output json e puoi cercare "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"
o dalla riga di comando:
wget --no-check-certificate https://api.github.com/repos/stant/mdcsvimporter2015/releases
Come già detto, puoi ottenere informazioni sulle tue uscite tramite l'API .
Per quelli che usano WordPress, ho sviluppato questo plugin: Download delle versioni di GitHub . Consente di ottenere il conteggio dei download, i collegamenti e ulteriori informazioni per le versioni dei repository GitHub.
Per rispondere alla domanda originale, lo shortcode [grd_count user="User" repo="MyRepo"]
restituirà il numero di download per un repository. Questo numero corrisponde alla somma di tutti i valori di conteggio dei download di tutte le versioni per un repository GitHub.
Esempio:
Risposta dal 2019:
Avevo realizzato un'app Web che mostra le statistiche di rilascio di GitHub in un formato pulito: https://hanadigital.github.io/grev/
Per coloro che hanno bisogno della soluzione in Python, ho scritto un semplice script.
ghstats.py [user] [repo] [tag] [options]
Ecco una soluzione Python che utilizza il pip install PyGithub
pacchetto
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
file).