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

81

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

Шреяс Карник
источник
Хотите узнать, сколько раз репозиторий разветвлялся ? Потому что это определенно выполнимо.
1
Теперь вы можете увидеть количество клонов : см. Как получить статистику GitHub Clone?
VonC
1
возможный дубликат Как получить статистику GitHub Clone?
Sumid

Ответы:

31

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

Meagar
источник
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 Все выпуски

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

развратник
источник