git 저장소의 다운로드 / 복제 통계를 얻는 방법이 있습니까?


81

git 저장소가 github에서 복제되거나 다운로드 된 횟수를 얻을 수있는 방법이 있습니까? http://gitstats.sourceforge.net/을 사용하여 코드 캠이 생성되는 커밋 시간과 같은 다른 통계를 찾았 기 때문에 궁금 했지만 복제 / 다운로드 수를 확인하는 방법을 찾지 못했습니다.


대신 저장소가 분기 된 횟수를 알고 싶습니까 ? 그것은 확실히 할 수 있기 때문입니다.


답변:


31

복제는 읽기 전용 작업이며 원본 저장소는 수정되지 않습니다. 단순히 추적되지 않는 데이터에 대한 통계를 가져올 수있는 방법은 없습니다.


24
글쎄, 전송 메커니즘 수준에서 로깅하여 git 외부에서 추적 할 수 있습니다 . 예를 들어, gitolite 로그가 클론을 추론하기에 충분한 정보를 제공 할 것이라고 확신합니다 (모든 참조를 다른 방식으로 가져 오는 것과 구별 할 수 없다고 생각하지만 여기에서 볼 것이 없습니다). 그러나 물론 github에서 그런 종류의 항목이 존재하더라도 액세스 할 수 없습니다.
Cascabel 2011

클론은 자체적으로 복제 할 수있는 전체 저장소라는 점을 염두에 두지 마십시오. 저장소의 특정 인스턴스가 몇 번 복제되었는지 확인하는 것은 얼마나 많은 사람들이이를 보편적으로 복제했는지 알아내는 데 유용하지 않습니다.
meagar

29
예, 확실히 신뢰할 수있는 통계는 아니지만, 예를 들어 오픈 소스 프로젝트가 안정적인 스냅 샷 대신 개발 마스터에서 빌드 할 수있는 사람의 수에 대한 대략적인 추정치를 가지고 궁금해하는 것을 볼 수 있습니다.
Cascabel

1
나는 그들이 git clone 요청 ammount를 기록 할 수 있다고 생각한다. 또는 더 좋은 점은 실제로 다운로드를 완료하는 이러한 요청입니다.
Aquarius Power

84

이제 매우 쉽습니다!

"REPO-> 통찰력-> 트래픽"으로 이동하십시오.

여기에 이미지 설명 입력


1
단지 참고 사항, 이것은 당신이 "소유권"또는으로 참여 수준 액세스의 일정 수준을 가지고해야 할 것 같다
bbarker

3
@KevinWorth OP는 그의 질문에서 github를 구체적으로 언급했습니다. 그리고 github 태그가 있습니다. 전체 질문을 읽지 않았거나 태그를 보지 않았습니까?
csga5000

3
신난다-지난 30 일간의 통계를 보여줍니다. 그들이 모든 시간을 가지거나 해마다 있으면 좋을 것입니다. 그러나 이것은 무언가입니다!
TetraDev

15

github API를 사용하여 단일 명령으로 더 간단한 방법이 있다는 것을 알게되었습니다.

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

Github를 포함한 다양한 웹 사이트의 프로젝트 수를 표시하는 아이콘 바를 제공 하는 shields.io 를 사용할 수 있습니다 . 다운로드 횟수는 표시되지만 복제 횟수는 표시되지 않습니다.

다음은 내가 가지고있는 프로젝트의 예입니다.

마크 다운 코드 :

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

결과:

GitHub 모든 릴리스

이미 게시 되었기 때문에 아무도 내 앱을 "다운로드"하지 않지만 사람들은 복제합니다. 그래서 차라리 그 숫자를보고 싶습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.