ใน Github มีวิธีดูจำนวนดาวน์โหลดสำหรับ repo หรือไม่?
ใน Github มีวิธีดูจำนวนดาวน์โหลดสำหรับ repo หรือไม่?
คำตอบ:
อัปเดต 2019:
/repos/:owner/:repo/traffic/clones
เพื่อรับจำนวนโคลนและรายละเอียดทั้งหมดต่อวันหรือสัปดาห์ แต่: เฉพาะในช่วง 14 วันที่ผ่านมา/repos/:owner/:repo/releases/:release_id
สำหรับรับจำนวนการดาวน์โหลดของเนื้อหาของคุณ (ไฟล์ที่แนบมากับรุ่น) ฟิลด์ที่download_count
ระบุด้านล่าง แต่ตามที่แสดงความคิดเห็นเฉพาะสำหรับ 30 รุ่นล่าสุดเท่านั้น ..อัปเดต 2017
คุณยังคงสามารถใช้GitHub APIเพื่อรับจำนวนการดาวน์โหลดสำหรับการเผยแพร่ของคุณได้ (ซึ่งไม่ตรงกับที่ถาม)
โปรดดูฟิลด์" รับรุ่นเดียว "download_count
ไม่มีหน้าจอการจราจรที่กล่าวถึงจำนวน repo clones อีกต่อไป
แต่คุณต้องพึ่งพาบริการของบุคคลที่สามเช่น:
www.netguru.co/gititback
) แต่ถึงอย่างนั้นก็ยังไม่รวมจำนวนโคลนgithubstats0
กล่าวถึงด้านล่างโดยAveek เครือสหพัฒน์
www.somsubhra.com/github-release-statsกล่าวถึงด้านล่าง
ตัวอย่างเช่นนี่คือหมายเลขของ git ล่าสุดสำหรับ Windows รุ่น
อัปเดตสิงหาคม 2557
GitHub ยังเสนอจำนวนโคลนสำหรับ repo ใน Traffic Graph ด้วย:
ดู " Clone Graphs "
อัปเดตตุลาคม 2556
ตามที่ระบุไว้ด้านล่างโดยandyberry88และเป็นฉันรายละเอียดเมื่อเดือนกรกฎาคม , GitHub ตอนนี้เสนอเผยแพร่ (ดูของ API ) ซึ่งมีdownload_count
ข้อมูล
Michele Milidoniในของเขา (upvoted) คำตอบที่ไม่ใช้ช่องว่าในสคริปต์หลามของเขา
( สารสกัดขนาดเล็กมาก )
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)
ฉันไม่แน่ใจว่าคุณจะเห็นข้อมูลนั้น (หากมีการบันทึกไว้เลย) เพราะฉันไม่เห็นข้อมูลนั้นในGitHub Repository API :
$ 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 หากต้องการสร้างรุ่นให้ใช้ UI ของ GitHub หรือสร้างแท็กที่มีคำอธิบายประกอบ (http: // git-scm.com/book/ch2-6.html) และเพิ่มบันทึกประจำรุ่นลงใน GitHub จากนั้นคุณสามารถอัปโหลดไบนารีหรือ "เนื้อหา" ไปยังแต่ละรุ่นได้
เมื่อคุณมีรุ่นบางรุ่น GitHub API จะรองรับการรับข้อมูลเกี่ยวกับพวกเขาและทรัพย์สิน
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/
การเพิ่มส่วนหัว "Accept" จะไม่ทำอันตรายใด ๆ ต่อไป
downloads
ฟิลด์ในเนื้อหาอีกต่อไป (อย่างน้อยก็ใช้เทคนิคนี้)
download_count
เป็นสนามที่บ่งชี้ว่าจำนวนของการดาวน์โหลด - ตัวอย่างเช่นในapi.github.com/repos/twbs/bootstrap/releases มันเป็นมูลค่า noting ว่ามีเพียง 'รุ่น' จะแสดงขึ้นในรายการนี้แท็กที่แสดงในหน้าเผยแพร่ repo ไม่ปรากฏในรายชื่อ API ดูdeveloper.github.com/v3/repos/releases ยกตัวอย่างเช่นgithub.com/jquery/jquery/releasesหลายรายการแท็กภายใต้ส่วนเผยแพร่ แต่รายการที่ว่างเปล่าจะถูกส่งกลับสำหรับapi.github.com/repos/jquery/jquery/releases
count=0
)? หรือแสดงเฉพาะฟิลด์สำหรับการร้องขอ Clone? ดูนี้ไม่มีdownload_count
: api.github.com/repos/demisjohn/pytrimsetup/releases หน้า github อยู่ที่นี่: github.com/demisjohn/pyTRIMSetup/releases
bootstrap-XYZ-dist.zip
เนื้อหาซึ่งเป็นสิ่งที่download_count
ฟิลด์เกี่ยวข้อง หากคุณต้องการดูจำนวนคนที่ดาวน์โหลดรุ่นคุณต้องอัปโหลด zip รุ่น เท่าที่ฉันรู้ไม่มีวิธีดูว่ามีคนโคลน / ดาวน์โหลดไฟล์เก็บถาวรผ่าน API กี่คน มุมมองกราฟ (จากstackoverflow.com/a/4339085/2634854ด้านบน) อาจให้สิ่งที่คุณต้องการ
เดิมรหัสดาวน์โหลดใน Github มีสองวิธี: โคลนหรือดาวน์โหลดเป็น zip a .git repo หรืออัปโหลดไฟล์ (ตัวอย่างเช่นไบนารี) เพื่อดาวน์โหลดในภายหลัง
เมื่อดาวน์โหลด repo (โคลนหรือดาวน์โหลดเป็น zip) Github จะไม่นับจำนวนการดาวน์โหลดสำหรับข้อ จำกัด ทางเทคนิค การโคลนที่เก็บเป็นการดำเนินการแบบอ่านอย่างเดียว ไม่จำเป็นต้องมีการตรวจสอบสิทธิ์ การดำเนินการนี้สามารถทำได้ผ่านหลายโปรโตคอลรวมถึง HTTPS ซึ่งเป็นโปรโตคอลเดียวกับที่หน้าเว็บใช้เพื่อแสดง repo ในเบราว์เซอร์ มันยากมากที่จะนับมัน
ดู: 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" }
หากต้องการตรวจสอบจำนวนครั้งที่ดาวน์โหลดไฟล์ / แพ็กเกจรุ่นคุณสามารถไปที่ https://githubstats0.firebaseapp.com
ช่วยให้คุณมีจำนวนการดาวน์โหลดทั้งหมดและแยกการดาวน์โหลดทั้งหมดต่อแท็กรุ่น
Github API ไม่ให้ข้อมูลที่จำเป็นอีกต่อไป ลองดูที่หน้ารุ่นดังกล่าวในคำตอบของสแตน Towianski ดังที่เราได้กล่าวถึงในความคิดเห็นของคำตอบนั้น Github API จะรายงานเฉพาะการดาวน์โหลด 1 ในสามไฟล์ที่เขาเสนอต่อรุ่น
ฉันได้ตรวจสอบวิธีแก้ไขแล้วซึ่งระบุไว้ในคำตอบอื่น ๆ ของคำถามนี้ คำตอบ VonC ของการจัดส่วนสำคัญของการแก้ปัญหาของ Michele Milidoni ฉันติดตั้งสคริปต์ 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' เป็นชื่อ Repository และคุณจะเห็นสิ่งต่างๆเช่น:
Download Info:
mdcsvimporter.mxt(0.20MB) - Downloaded 37 times.
Last updated on 2015-03-26
อนิจจาเป็นเพียงรายงานอีกครั้งที่ไม่มีการดาวน์โหลดไฟล์ tar.gz และ zip ฉันได้ตรวจสอบข้อมูลอย่างถี่ถ้วนแล้วว่า API ของ Github ส่งคืน แต่ไม่มีให้ที่ใดเลย download_count ที่ API ส่งคืนยังไม่สมบูรณ์ในปัจจุบัน
ฉันลงเอยด้วยการเขียนสคริปต์มีดโกนเพื่อค้นหาจำนวนโคลนของฉัน:
#!/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 และ Michele Milidoni ฉันได้สร้างbookmarklet นี้ซึ่งแสดงสถิติการดาวน์โหลดของ github ที่โฮสต์ไบนารีที่ปล่อยออกมา
หมายเหตุ: เนื่องจากปัญหาเกี่ยวกับเบราว์เซอร์ที่เกี่ยวข้องกับการใช้งานนโยบายความปลอดภัยของเนื้อหา bookmarklets อาจละเมิดคำสั่ง CSP บางส่วนชั่วคราวและโดยทั่วไปอาจทำงานไม่ถูกต้องเมื่อทำงานบน github ในขณะที่เปิดใช้งาน CSP
แม้ว่าจะท้อแท้มาก แต่คุณสามารถปิดใช้งาน CSP ใน Firefox เป็นวิธีแก้ปัญหาชั่วคราวได้ เปิด about: config และ set 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"
หรือในบรรทัดคำสั่ง do:
wget --no-check-certificate https://api.github.com/repos/stant/mdcsvimporter2015/releases
ฉันได้สร้างเว็บแอปที่แสดงสถิติการเปิดตัว GitHub ในรูปแบบที่สะอาด: https://hanadigital.github.io/grev/
ตามที่ระบุไว้อยู่แล้วคุณจะได้รับข้อมูลเกี่ยวกับข่าวผ่าน API
สำหรับผู้ใช้ WordPress ผมพัฒนาปลั๊กอินนี้: GitHub ดาวน์โหลดที่วางจำหน่าย ช่วยให้คุณได้รับจำนวนการดาวน์โหลดลิงก์และข้อมูลเพิ่มเติมสำหรับการเผยแพร่ที่เก็บ GitHub
เพื่อตอบคำถามเดิม[grd_count user="User" repo="MyRepo"]
รหัสย่อจะส่งคืนจำนวนการดาวน์โหลดสำหรับที่เก็บ ตัวเลขนี้สอดคล้องกับผลรวมของค่าจำนวนการดาวน์โหลดทั้งหมดของรีลีสทั้งหมดสำหรับที่เก็บ GitHub เดียว
ตัวอย่าง:
คำตอบจากปี 2019:
สำหรับผู้ที่ต้องการวิธีแก้ปัญหาใน Python ฉันเขียนสคริปต์ง่ายๆ
ghstats.py [user] [repo] [tag] [options]
นี่คือวิธีแก้ปัญหา python โดยใช้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
ไฟล์)