Есть ли способ получить статистику загрузки / клонирования репозитория 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.