202 votes

Github : Puis-je voir le nombre de téléchargements pour un dépôt ?

Sur Github, y a-t-il un moyen de voir le nombre de téléchargements pour un dépôt?

0 votes

Les décomptes de clones sont disponibles pour les utilisateurs autorisés en grattant avec un nom d'utilisateur et un mot de passe Github ainsi que les décomptes de téléchargements de fichiers d'actifs dans les versions. Il ne semble pas possible d'obtenir les décomptes de clones à partir de dépôts publics ou les statistiques de téléchargement sur les fichiers non-actifs (c'est-à-dire les fichiers tar.gz et zip du dépôt).

2 votes

À toute personne lisant les réponses, tous les scripts ci-dessous donnant le nombre de téléchargements de version publiée sont incorrects, car ils ne tiennent pas compte du système de pagination de GitHub, et ne donnent que le total pour les 30 versions les plus récentes.

0 votes

Oui @Qiri, tu as raison, j'ai trouvé une réponse alternative, je la poste ici.

145voto

VonC Points 414372

Update 2019:

Ustin's réponse pointe vers :


Update 2017

Vous pouvez toujours utiliser l' API Github pour obtenir le nombre de téléchargements pour vos releases (ce qui n'est pas exactement ce qui a été demandé)
Voir "Obtenir une seule release", le champ download_count.

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 comme :

Git 2.14.2 release


Update août 2014

GitHub propose également le nombre de clones pour les repo dans son graphique de trafic :
Voir "Graphiques de clonage"

https://i.stack.imgur.com/uycEZ.png


Update octobre 2013

Comme mentionné ci-dessous par andyberry88, et comme je l'ai détaillé en juillet dernier, GitHub propose désormais des releases (voir son API), qui possède un champ download_count.

Michele Milidoni, dans sa réponse (upvotée), utilise ce champ dans son script python.
(extrait très court)

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']) +
                   " téléchargements")

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 Repository GitHub :

$ curl http://github.com/api/v2/yaml/repos/show/schacon/grit
---
repository:
  :name: grit
  :owner: schacon
  :source: mojombo/grit # Le repo original en haut de la pyramide
  :parent: defunkt/grit # Le parent direct de ce repo
  :description: Grit est une bibliothèque Ruby pour extraire des informations d'un
  dépôt git de manière orientée objet - ce fork essaie de
  intégrer autant de fonctionnalités purement Ruby que 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 ne pouvez voir que s'il y a des téléchargements ou non.


Adam Jagosz rapporte dans les commentaires:

J'ai réussi avec

 curl -H "Accept: application/vnd.github.v3+json"   https://api.github.com/repos/:user/:repo/releases

Quelques choses que j'avais mal :

  • J'avais besoin d'une réelle release Github (pas juste un tag git, même si Github les affiche sous les releases, ugh).
  • Et la release doit avoir un fichier asset autre que la source zippée ajoutée automatiquement pour obtenir le décompte des téléchargements.

2 votes

Est-ce que cela comprend des téléchargements ZIP ou juste des clones?

1 votes

@MarzSocks si vous parlez du champ download_count de l'API de publication, cela devrait inclure le nombre de téléchargements de publication (qui ne sont pas toujours des zip, et ne sont pas des clones)

0 votes

@MarzSocks si vous parlez du "nombre de clones", cela ne devrait pas inclure les téléchargements zip. Seules les instances git clone. Vérifiez avec le support de GitHub pour confirmation.

104voto

Somsubhra Points 1

J'ai écrit une petite application web en JavaScript pour afficher le nombre de téléchargements de tous les éléments disponibles dans les versions disponibles de n'importe quel projet sur Github. Vous pouvez essayer l'application ici : http://somsubhra.github.io/github-release-stats/

5 votes

Je continue de recevoir des messages indiquant "Il n'y a pas de versions pour ce projet" ou "Le projet n'existe pas". Qu'est-ce que je fais de travers ?

0 votes

Je reçois le même message. Ça ne peut pas être juste.

3 votes

Oui. Moi aussi. Il semble que cette application ait cessé de fonctionner il y a longtemps.

12voto

andyberry88 Points 59

GitHub a supprimé la prise en charge des téléchargements et prend désormais en charge les 'Versions' - https://github.com/blog/1547-release-your-software. Pour créer une version, utilisez soit l'interface utilisateur GitHub, soit créez une balise annotée (http:// git-scm.com/book/ch2-6.html) et ajoutez des notes de version. Vous pouvez ensuite télécharger des binaires, ou 'assets', pour chaque version.

Une fois que vous avez des versions, l'API GitHub prend en charge l'obtention d'informations à leur sujet et sur leurs assets.

curl -i \
https://api.github.com/repos/:owner/:repo/releases \
-H "Accept: application/vnd.github.manifold-preview+json"

Recherchez l'entrée 'download_count'. Vous trouverez plus d'informations sur http://developer.github.com/v3/repos/releases/. Cette partie de l'API est encore en période de prévisualisation, donc elle peut être modifiée.

Mise à jour novembre 2013:

L'API des versions de GitHub est maintenant sortie 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, il n'y a aucun inconvénient à continuer d'ajouter l'en-tête 'Accept'.

0 votes

Ai-je tort de penser que GitHub ne montre actuellement plus de champ téléchargements dans les ressources (du moins en utilisant cette technique) ?

0 votes

Merci! Mes dépôts ne semblent pas avoir un tel champ, même avec certains tags définis comme "releases" - cela ne prend pas en compte les téléchargements des versions zippées/tarbalisées (ou le champ est omis si count=0)? Ou montre 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

0 votes

Les comptes de téléchargement ne sont disponibles que pour les objets de publication, et non pour les archives du code source pour la balise. Si vous regardez les URL de bootstrap que j'ai fournies ci-dessus, elles ont un objet bootstrap-XYZ-dist.zip qui est ce à quoi le champ download_count se rapporte. Si vous voulez voir combien de personnes téléchargent une publication, vous devez télécharger une publication zip. 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. Cependant, la vue des graphiques (à partir de stackoverflow.com/a/4339085/2634854 ci-dessus) pourrait vous donner ce que vous cherchez.

7voto

Comme mentionné, l'API GitHub retourne le nombre de téléchargements des versions binaires des fichiers. J'ai développé un petit script pour obtenir facilement le nombre de téléchargements en ligne de commande.

0 votes

Est-ce que je peux voir un exemple d'utilisation de ceci? Est-il possible de l'ajouter à un badge Github? Sinon, serait-il possible d'utiliser Google Analytics pour obtenir le nombre de téléchargements sur un badge Github d'une manière ou d'une autre?

7voto

Rarylson Freitas Points 151

Auparavant, il y avait deux méthodes pour télécharger du code sur Github : cloner ou télécharger un dépôt .git au format zip, ou téléverser un fichier (par exemple, un binaire) pour un téléchargement ultérieur.

Lorsque vous téléchargez un dépôt (cloner ou télécharger au format zip), Github ne compte pas le nombre de téléchargements pour des limitations techniques. Cloner un dépôt est une opération en lecture seule. Aucune authentification n'est requise. Cette opération peut être effectuée via de nombreux protocoles, notamment 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/fr/Le-serveur-Git-Les-protocoles

Récemment, Github a abandonné la fonctionnalité de téléchargement. Cela s'explique par le fait qu'ils comprennent que Github se concentre sur la construction de logiciels, et non sur la distribution de binaires.

Voir : https://github.com/blog/1302-au-revoir-t%C3%A9l%C3%A9versements

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X