Есть ли способ получить статистику загрузки / клонирования репозитория git?


81

Есть ли способ узнать, сколько раз репозиторий git был клонирован или загружен с github? Мне было просто любопытно, так как я обнаружил, что другая статистика, такая как время фиксации строк кода, может быть сгенерирована с помощью: http://gitstats.sourceforge.net/, но я не нашел, как проверить количество клонов / загрузок.


Хотите узнать, сколько раз репозиторий разветвлялся ? Потому что это определенно выполнимо.

1
Теперь вы можете увидеть количество клонов : см. Как получить статистику GitHub Clone?
VonC

Ответы:


31

Клонирование - это операция только для чтения, исходный репозиторий не изменяется. Невозможно получить статистику для данных, которые просто не отслеживаются.


24
Ну, это было бы возможно , чтобы отслеживать его пределами мерзавца, войдя на уровне транспортного механизма. Например, я почти уверен, что журналы gitolite предоставят достаточно информации для вывода клонов (хотя я думаю, что они могут быть неотличимы от получения всех ссылок другим способом? Не на что смотреть здесь). Но, конечно, у вас нет доступа к подобным вещам из github, даже если они существуют.
Cascabel

Неважно, что клоны - это полные репозитории, которые сами могут быть клонированы. Просмотр того, сколько раз клонировался конкретный экземпляр репозитория, не будет полезен для определения того, сколько людей клонировали его повсеместно.
meagar

29
Да, это, конечно, никогда не будет надежной статистикой, но, например, я мог видеть, что проект с открытым исходным кодом любопытно иметь хотя бы оценку порядка величины того, сколько людей может строить из мастера разработки вместо стабильных снимков.
Cascabel

1
Я думаю, они могли бы просто зарегистрировать количество запросов git clone; или даже лучше, эти запросы, которые фактически завершают загрузку.
Aquarius Power

84

Теперь это очень просто!

Перейдите «РЕПО -> Статистика -> Трафик».

введите описание изображения здесь


1
просто примечание, похоже, это требует, чтобы у вас был некоторый уровень «владения» или доступа на уровне
коммитера

3
@KevinWorth ОП специально упомянул github в своем вопросе. И отметил github. Возможно, вы не прочитали вопрос полностью или не посмотрели на теги?
csga5000 02

3
Отлично - показывает статистику за последние 30 дней. Было бы хорошо, если бы у них было все время или по годам, но это что-то!
TetraDev 03

15

Я просто обнаружил, что есть еще более простой способ получить его с помощью одной команды с помощью API github.

curl -u [username]:[password] https://api.github.com/repos/[owner]/[repo]/traffic/clones

Вот:

username  = your github id
password  = your github password, optional. If not put in command, a password request would pop out.
owner     = the owner of the repo, might be another name for a organized repo
repo      = the repo name

Радоваться, веселиться.


5

Что касается статистики загрузок, вы можете получить информацию о своих выпусках через API .

Для тех, кто использует WordPress, я разработал этот плагин: GitHub Release Downloads . Он позволяет вам получать количество загрузок, ссылки и дополнительную информацию о выпусках репозиториев GitHub.

Чтобы ответить на исходный вопрос, шорткод [grd_count user="User" repo="MyRepo"]вернет количество загрузок для репозитория. Это число соответствует сумме всех значений счетчика загрузок всех выпусков для одного репозитория GitHub.

Пример: пример


1

Фактическое количество клонов доступно через функцию Clone Graphs , которую я смог очистить, чтобы получить индивидуальные подсчеты:

#!/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'

0

Вы можете использовать shields.io который предоставляет панели значков, на которых отображается количество проектов на различных веб-сайтах, включая Github. Они отображают количество загрузок, но не количество клонов.

Вот пример моего проекта:

Код уценки:

![GitHub All Releases](https://img.shields.io/github/downloads/lewdev/hw-gen/total)

Результат:

GitHub Все выпуски

Никто не «скачивает» мое приложение, потому что оно уже опубликовано, но люди его клонируют. Так что я бы предпочел посмотреть на это.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.