Dans Github, y a-t-il un moyen de voir le nombre de téléchargements pour un dépôt?
Dans Github, y a-t-il un moyen de voir le nombre de téléchargements pour un dépôt?
Réponses:
Mise à jour 2019:
La réponse d' Ustin indique:
/repos/:owner/:repo/traffic/clones
, pour obtenir le nombre total de clones et de ventilation par jour ou par semaine, mais: uniquement pour les 14 derniers jours./repos/:owner/:repo/releases/:release_id
pour obtenir le nombre de téléchargements de vos ressources (fichiers joints à la version), champ download_count
mentionné ci-dessous, mais, comme commenté , uniquement pour les 30 versions les plus récentes.Mise à jour 2017
Vous pouvez toujours utiliser l' API GitHub pour obtenir le nombre de téléchargements de vos versions (ce qui n'est pas exactement ce qui a été demandé)
Voir « Obtenir une seule version », le download_count
champ.
Il n'y a plus d'écran de trafic mentionnant le nombre de clones de repo.
Au lieu de cela, vous devez vous fier à des services tiers tels que:
www.netguru.co/gititback
), mais même cela n'inclut pas le nombre de clones.githubstats0
, mentionné ci - dessous par Aveek Saha .
www.somsubhra.com/github-release-stats , mentionné ci - dessous .
Par exemple, voici le numéro de la dernière version de git pour Windows
Mise à jour août 2014
GitHub propose également le nombre de clones pour le repo dans son Traffic Graph:
Voir " Clone Graphs "
Mise à jour octobre 2013
Comme mentionné ci - dessous par andyberry88 , et comme je l' ai détaillé en juillet dernier , GitHub propose désormais des versions (voir son API ), qui a un download_count
champ .
Michele Milidoni , dans sa réponse (votée pour) , utilise ce champ dans son script python .
( très petit extrait )
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")
Réponse originale (décembre 2010)
Je ne suis pas sûr que vous puissiez voir ces informations (si elles sont enregistrées du tout), car je ne les vois pas dans l' API du référentiel 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
Vous pouvez seulement voir s'il a des téléchargements ou non.
download_count
champ de l'API de version, cela devrait inclure le nombre de téléchargements de versions (qui ne sont pas toujours zip et ne sont pas des clones)
git clone
instances. Vérifiez auprès de l'assistance GitHub pour confirmation.
J'ai écrit une petite application Web en javascript pour afficher le nombre de téléchargements de tous les actifs dans les versions disponibles de tout projet sur Github. Vous pouvez essayer l'application ici: http://somsubhra.github.io/github-release-stats/
GitHub a abandonné la prise en charge du téléchargement et prend désormais en charge les `` versions '' - https://github.com/blog/1547-release-your-software . Pour créer une version, utilisez l'interface utilisateur de GitHub ou créez une balise annotée (http: // git-scm.com/book/ch2-6.html) et ajoutez-y des notes de publication dans GitHub. Vous pouvez ensuite télécharger des binaires, ou «actifs», dans chaque version.
Une fois que vous disposez de certaines versions, l'API GitHub prend en charge l'obtention d'informations à leur sujet et sur leurs actifs.
curl -i \
https://api.github.com/repos/:owner/:repo/releases \
-H "Accept: application/vnd.github.manifold-preview+json"
Recherchez l'entrée "download_count". Il y a plus d'informations sur http://developer.github.com/v3/repos/releases/ . Cette partie de l'API est toujours dans la période de prévisualisation ATM, elle peut donc changer.
L'API des versions de GitHub est maintenant hors de la période de prévisualisation, donc l'en-tête 'Accept' n'est plus nécessaire - http://developer.github.com/changes/2013-11-04-releases-api-is-official/
Cependant, cela ne fera aucun mal de continuer à ajouter l'en-tête «Accept».
downloads
champ dans les assets (du moins en utilisant cette technique)?
download_count
est le champ qui indique le nombre de téléchargements - par exemple dans api.github.com/repos/twbs/bootstrap/releases . Il est à noter que seules les «versions» apparaîtront dans cette liste, les balises qui apparaissent dans la page des versions d'un dépôt n'apparaissent pas dans la liste des API, voir developer.github.com/v3/repos/releases . Par exemple, github.com/jquery/jquery/releases répertorie plusieurs balises sous la section releases mais une liste vide est renvoyée pour api.github.com/repos/jquery/jquery/releases .
count=0
)? Ou affiche uniquement le champ pour les demandes de clonage? Voir ceci, sans download_count
: api.github.com/repos/demisjohn/pytrimsetup/releases . La page github pour cela est ici: github.com/demisjohn/pyTRIMSetup/releases
bootstrap-XYZ-dist.zip
atout auquel le download_count
champ se rapporte. Si vous voulez voir combien de personnes téléchargent une version, vous devez télécharger un zip de version. Autant que je sache, il n'y a aucun moyen de voir combien de personnes ont cloné / téléchargé une archive via l'API. La vue graphique (de stackoverflow.com/a/4339085/2634854 ci-dessus) peut vous donner ce que vous recherchez.
Auparavant, il existait deux méthodes de téléchargement de code dans Github: cloner ou télécharger en zip un dépôt .git, ou télécharger un fichier (par exemple, un binaire) pour un téléchargement ultérieur.
Lors du téléchargement d'un dépôt (cloner ou télécharger sous forme de zip), Github ne compte pas le nombre de téléchargements pour les limitations techniques. Cloner un référentiel est une opération en lecture seule. Aucune authentification n'est requise. Cette opération peut être effectuée via de nombreux protocoles, y compris HTTPS, le même protocole que la page Web utilise pour afficher le dépôt dans le navigateur. Il est très difficile de le compter.
Voir: http://git-scm.com/book/en/Git-on-the-Server-The-Protocols
Récemment, Github a abandonné la fonctionnalité de téléchargement. C'est parce qu'ils comprennent que Github se concentre sur la création de logiciels et non sur la distribution de binaires.
Comme mentionné, l'API GitHub renvoie le nombre de téléchargements de versions de fichiers binaires. J'ai développé un petit script pour obtenir facilement le nombre de téléchargements par ligne de commande.
Très tard, mais voici la réponse que vous souhaitez:
https://api.github.com/repos/ [git username] / [git project] /releases
Ensuite, trouvez l'ID du projet que vous recherchez dans les données. Il devrait être près du haut, à côté des URL. Ensuite, accédez à
https://api.github.com/repos/ [git username] / [git project] /releases/ [id] / assets
Le champ nommé download_count est votre réponse.
EDIT: Les majuscules comptent dans votre nom d'utilisateur et le nom de votre projet
{ "message": "Not Found", "documentation_url": "https://developer.github.com/v3" }
L'API Github ne fournit plus les informations nécessaires. Jetez un œil à la page des communiqués , mentionnée dans la réponse de Stan Towianski . Comme nous en avons discuté dans les commentaires de cette réponse, l'API Github ne rapporte que les téléchargements de 1 des trois fichiers qu'il propose par version.
J'ai vérifié les solutions, fournies dans d'autres réponses à ces questions. La réponse de Vonc présente l'essentiel de la solution de Michele Milidoni . J'ai installé son script gdc avec le résultat suivant
# ./gdc stant
mdcsvimporter.mxt: 37 downloads
mdcsvimporter.mxt: 80 downloads
How-to-use-mdcsvimporter-beta-16.zip: 12 downloads
Comme vous pouvez le voir clairement, gdc ne rapporte pas le nombre de téléchargements des fichiers tar.gz et zip.
Si vous voulez vérifier sans rien installer, essayez la page Web où Somsubhra a installé la solution, mentionnée dans sa réponse . Remplissez 'stant' comme nom d'utilisateur Github et 'mdcsvimporter2015' comme nom de dépôt et vous verrez des choses comme:
Download Info:
mdcsvimporter.mxt(0.20MB) - Downloaded 37 times.
Last updated on 2015-03-26
Hélas, encore une fois seulement un rapport sans les téléchargements des fichiers tar.gz et zip. J'ai soigneusement examiné les informations renvoyées par l'API de Github, mais elles ne sont fournies nulle part. Le download_count que l'API renvoie est loin d'être terminé de nos jours.
Pour vérifier le nombre de téléchargements d'un fichier / package de version, vous pouvez aller sur https://githubstats0.firebaseapp.com
Il vous donne un nombre total de téléchargements et une répartition du nombre total de téléchargements par balise de version.
J'ai fini par écrire un script de raclage pour trouver mon nombre 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'
Cela récupérera les données du même point de terminaison que le graphique de clonage de Github utilise et en crachera les totaux. Les données incluent également les décomptes par jour, remplacez-les .summary
par juste .
pour voir ces jolis imprimés.
Basé sur les réponses de VonC et de Michele Milidoni, j'ai créé ce bookmarklet qui affiche les statistiques de téléchargement des binaires publiés hébergés par github.
Remarque: en raison de problèmes avec les navigateurs liés à la mise en œuvre de la politique de sécurité du contenu, les bookmarklets peuvent temporairement violer certaines directives CSP et peuvent ne pas fonctionner correctement lors de l'exécution sur github alors que CSP est activé.
Bien que ce soit fortement déconseillé, vous pouvez désactiver CSP dans Firefox comme solution de contournement temporaire. Ouvrez about: config et définissez security.csp.enable sur false.
Pour essayer de rendre cela plus clair:
pour ce projet github: stant / mdcsvimporter2015
https://github.com/stant/mdcsvimporter2015
avec des versions sur
https://github.com/stant/mdcsvimporter2015/releases
allez sur http ou https: (note ajoutée "api." et "/ repos")
https://api.github.com/repos/stant/mdcsvimporter2015/releases
vous obtiendrez cette sortie json et vous pourrez rechercher "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 en ligne de commande, faites:
wget --no-check-certificate https://api.github.com/repos/stant/mdcsvimporter2015/releases
Comme déjà indiqué, vous pouvez obtenir des informations sur vos versions via l'API .
Pour ceux qui utilisent WordPress, j'ai développé ce plugin: GitHub Release Downloads . Il vous permet d'obtenir le nombre de téléchargements, des liens et plus d'informations sur les versions des référentiels GitHub.
Pour répondre à la question d'origine, le shortcode [grd_count user="User" repo="MyRepo"]
renverra le nombre de téléchargements pour un référentiel. Ce nombre correspond à la somme de toutes les valeurs du nombre de téléchargements de toutes les versions pour un référentiel GitHub.
Exemple:
Réponse de 2019:
J'avais créé une application Web qui affiche les statistiques de publication de GitHub dans un format propre: https://hanadigital.github.io/grev/
Pour ceux qui ont besoin de la solution en Python, j'ai écrit un script simple.
ghstats.py [user] [repo] [tag] [options]
Voici une solution python utilisant le pip install PyGithub
package
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
et deszip
fichiers).