В Github есть ли способ узнать количество загрузок для репо?
В Github есть ли способ узнать количество загрузок для репо?
Ответы:
Обновление 2019:
/repos/:owner/:repo/traffic/clones
, чтобы получить общее количество клонов и разбивки за день или неделю, но: только за последние 14 дней./repos/:owner/:repo/releases/:release_id
для получения количества загрузок ваших ресурсов (файлов, прикрепленных к релизу), поле download_count
указано ниже, но, как прокомментировано , только для последних 30 выпусков.Обновление 2017
Вы по-прежнему можете использовать API GitHub для получения количества загрузок для ваших выпусков (что не совсем то , что было запрошено).
См. « Получить один выпуск », download_count
поле.
Больше нет экрана трафика с указанием количества клонов репо.
Вместо этого вы должны полагаться на сторонние сервисы, такие как:
www.netguru.co/gititback
), но даже это не включает в себя количество клонов.githubstats0
, Упомянутый ниже по Aveek Saha .
www.somsubhra.com/github-release-stats , упомянутый ниже .
Например, вот номер последней версии git для Windows
Обновление август 2014
GitHub также предлагает количество клонов для репо в своем Графике трафика:
см. « Графики клонов »
Обновление октябрь 2013
Как упомянуто ниже по andyberry88 , и как я подробно в июле прошлого года , GitHub в настоящее время предлагает релизы (см его API ), который имеет download_count
поле .
Мишель Милидони , в своем ответе (с голосованием) , использует это поле в своем скрипте на python .
( очень маленький экстракт )
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")
Оригинальный ответ (декабрь 2010 г.)
Я не уверен, что вы можете видеть эту информацию (если она вообще записана), потому что я не вижу ее в GitHub Repository API :
$ 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
Вы можете только видеть, есть ли у него загрузки или нет.
download_count
поле API релиза, которое должно включать количество загрузок релиза (которые не всегда являются zip-файлами и не являются клонами)
git clone
экземпляры. Проверьте с поддержкой GitHub для подтверждения.
Я написал небольшое веб-приложение на javascript для отображения количества загрузок всех ресурсов в доступных выпусках любого проекта на Github. Вы можете попробовать приложение здесь: http://somsubhra.github.io/github-release-stats/
GitHub отказался от поддержки загрузки и теперь поддерживает «Релизы» - https://github.com/blog/1547-release-your-software . Чтобы создать выпуск, используйте пользовательский интерфейс GitHub или создайте аннотированный тег (http: // git-scm.com/book/ch2-6.html) и добавьте примечания к выпуску в GitHub. Затем вы можете загружать двоичные файлы или «активы» в каждую версию.
Когда у вас есть несколько выпусков, GitHub API поддерживает получение информации о них и их активах.
curl -i \
https://api.github.com/repos/:owner/:repo/releases \
-H "Accept: application/vnd.github.manifold-preview+json"
Ищите запись «download_count». Theres больше информации в http://developer.github.com/v3/repos/releases/ . Эта часть API все еще находится в периоде предварительного просмотра ATM, поэтому она может измениться.
API релизов GitHub теперь вышел из периода предварительного просмотра, поэтому заголовок «Принять» больше не нужен - http://developer.github.com/changes/2013-11-04-releases-api-is-official/
Впрочем, продолжать добавлять заголовок «Принять» не повредит.
downloads
поле в активах (по крайней мере, с использованием этой техники)?
download_count
это поле, которое указывает количество загрузок - например, в api.github.com/repos/twbs/bootstrap/releases . Стоит отметить, что в этом списке будут отображаться только «релизы», тэги, которые отображаются на странице релизов репо, не отображаются в списке API, см. Developer.github.com/v3/repos/releases . Например, github.com/jquery/jquery/releases перечисляет несколько тегов в разделе выпусков, но для api.github.com/repos/jquery/jquery/releases возвращается пустой список .
count=0
)? Или показывает только поле для запросов клонов? Смотрите это без download_count
: api.github.com/repos/demisjohn/pytrimsetup/releases . Страница github для этого находится здесь: github.com/demisjohn/pyTRIMSetup/releases
bootstrap-XYZ-dist.zip
актив, к которому относится download_count
поле. Если вы хотите узнать, сколько людей скачивают релиз, вам нужно загрузить ZIP-релиз релиза. Насколько я знаю, нет способа узнать, сколько людей клонировали / загрузили архив через API. Представление графиков (из stackoverflow.com/a/4339085/2634854 выше) может дать вам то, что вы ищете, хотя.
Раньше в Github было два способа загрузки кода: клонирование или загрузка в виде zip-репозитория .git или загрузка файла (например, двоичного файла) для последующей загрузки.
При загрузке репозитория (клонирование или загрузка в формате zip) Github не считает количество загрузок из-за технических ограничений. Клонирование репозитория является операцией только для чтения. Там нет аутентификации требуется. Эта операция может быть выполнена с помощью многих протоколов, включая HTTPS, того же протокола, который веб-страница использует для отображения репо в браузере. Это очень сложно сосчитать.
Смотрите: http://git-scm.com/book/en/Git-on-the-Server-The-Protocols
В последнее время Github отказался от функциональности загрузки. Это потому, что они понимают, что Github сосредоточен на создании программного обеспечения, а не на распространении двоичных файлов.
Как уже упоминалось, GitHub API возвращает количество загрузок выпусков двоичных файлов. Я разработал небольшой скрипт для простого подсчета загрузок в командной строке.
Очень поздно, но вот ответ, который вы хотите:
https://api.github.com/repos/ [git username] / [git project] /releases
Затем найдите в данных идентификатор проекта, который вы ищете. Это должно быть около вершины, рядом с URL. Затем перейдите к
https://api.github.com/repos/ [git username] / [git project] /releases/ [id] / assets
Поле с именем download_count является вашим ответом.
РЕДАКТИРОВАТЬ: заглавные буквы имеют значение в вашем имени пользователя и имени проекта
{ "message": "Not Found", "documentation_url": "https://developer.github.com/v3" }
Github API больше не предоставляет необходимую информацию. Взгляните на страницу релизов , упомянутую в ответе Стэна Тоуянски . Как мы уже обсуждали в комментариях к этому ответу, API Github сообщает только о загрузках 1 из трех файлов, которые он предлагает в каждой версии.
Я проверил решения, предоставленные в некоторых других ответах на эти вопросы. Ответ Вонка представляет существенную часть решения Микеле Милидони . Я установил его скрипт gdc со следующим результатом
# ./gdc stant
mdcsvimporter.mxt: 37 downloads
mdcsvimporter.mxt: 80 downloads
How-to-use-mdcsvimporter-beta-16.zip: 12 downloads
Как вы можете ясно видеть, gdc не сообщает количество загрузок файлов tar.gz и zip.
Если вы хотите проверить, не устанавливая что-либо, попробуйте веб-страницу, где Somsubhra установила решение, упомянутое в его ответе . Заполните 'stant' в качестве имени пользователя Github и mdcsvimporter2015 в качестве имени репозитория, и вы увидите такие вещи, как:
Download Info:
mdcsvimporter.mxt(0.20MB) - Downloaded 37 times.
Last updated on 2015-03-26
Увы, еще раз только отчет без скачивания tar.gz и zip файлов. Я тщательно изучил информацию, которую возвращает API Github, но она нигде не предоставляется. Количество загрузок, которое API возвращает, далеко не завершено в настоящее время.
Чтобы проверить, сколько раз был загружен файл / пакет релиза, вы можете перейти на https://githubstats0.firebaseapp.com
Это дает вам общее количество загрузок и разбивку общих загрузок на тег выпуска.
В итоге я написал скрипт-скребок, чтобы узнать количество клонов:
#!/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'
Это позволит получить данные из той же конечной точки, которую использует граф клонов Github, и выплеснуть итоговые данные из нее. Данные также включают ежедневные подсчеты, замените их .summary
просто на то, .
чтобы увидеть те, которые были напечатаны.
На основе ответов VonC и Michele Milidoni я создал этот букмарклет, который отображает статистику загрузок выпущенных двоичных файлов, размещенных на github.
Примечание. Из-за проблем с браузерами, связанных с реализацией политики безопасности контента, букмарклеты могут временно нарушать некоторые директивы CSP и в основном могут работать неправильно при работе на github, когда CSP включен.
Хотя это крайне нежелательно, вы можете отключить CSP в Firefox как временное решение. Откройте about: config и установите для security.csp.enable значение false.
Чтобы попытаться прояснить это:
для этого проекта github: stant / mdcsvimporter2015
https://github.com/stant/mdcsvimporter2015
с выпусками на
https://github.com/stant/mdcsvimporter2015/releases.
перейдите на http или https: (обратите внимание, добавлены "api." и "/ repos")
https://api.github.com/repos/stant/mdcsvimporter2015/releases
вы получите этот вывод json и сможете выполнить поиск по запросу «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"
или в командной строке выполните:
wget --no-check-certificate https://api.github.com/repos/stant/mdcsvimporter2015/releases
Как уже говорилось, вы можете получить информацию о своих релизах через API .
Для тех, кто использует WordPress, я разработал этот плагин: GitHub Release Downloads . Это позволяет вам получить количество загрузок, ссылки и дополнительную информацию для выпусков репозиториев GitHub.
Чтобы ответить на исходный вопрос, шорткод [grd_count user="User" repo="MyRepo"]
вернет количество загрузок для хранилища. Это число соответствует сумме всех значений количества загрузок всех выпусков для одного репозитория GitHub.
Пример:
Ответ с 2019 года:
Я сделал веб-приложение, которое показывает статистику выпуска GitHub в чистом формате: https://hanadigital.github.io/grev/
Для тех, кому нужно решение на Python, я написал простой скрипт.
ghstats.py [user] [repo] [tag] [options]
Вот решение Python с использованием pip install PyGithub
пакета
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
иzip
файлы).