Чи є в 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 р.)
Я не впевнений, що ви можете бачити цю інформацію (якщо вона взагалі записана), оскільки я не бачу її в API репозиторію 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
Ви можете бачити лише завантаження чи ні.
download_count
поле API випуску, яке повинно включати кількість завантажень випусків (які не завжди поштові, а не клони)
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. Потім ви можете завантажувати бінарні файли або "активи" до кожного випуску.
Щойно у вас є деякі версії, API GitHub підтримує отримання інформації про них та їхні активи.
curl -i \
https://api.github.com/repos/:owner/:repo/releases \
-H "Accept: application/vnd.github.manifold-preview+json"
Шукайте запис "download_count". Більше інформації на сайті 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
відноситься поле. Якщо ви хочете побачити, скільки людей завантажує випуск, вам потрібно завантажити поштовий реліз. Наскільки я знаю, немає способу побачити, скільки людей клонували / завантажили архів через API. Перегляд графіків (з stackoverflow.com/a/4339085/2634854 вище) може дати вам те, що вам потрібно.
Раніше в Github було два способи завантаження коду: клонувати або завантажити як zip a .git repo, або завантажити файл (наприклад, двійковий) для подальшого завантаження.
Під час завантаження репо (клонування або завантаження у форматі 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" }
API Github більше не надає необхідної інформації. Подивіться на сторінку випусків , згадану у відповіді Стана Тов’янського . Як ми обговорювали в коментарях до цієї відповіді, 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 та Мішеле Мілідоні я створив цю закладку якій відображаються статистичні дані щодо завантажень випущених бінарних файлів github.
Примітка. Через проблеми із браузерами, пов’язаними з реалізацією політики безпеки вмісту, закладки можуть тимчасово порушувати деякі директиви CSP і в основному можуть не працювати належним чином під час роботи на github, коли CSP увімкнено.
Незважаючи на те, що це дуже обережно, ви можете відключити CSP у Firefox як тимчасове вирішення. Відкрийте про: 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-сертифікат 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]
Ось рішення пітона за допомогою 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
файли).