Trong Github, có cách nào tôi có thể thấy số lượt tải xuống cho một repo không?
Trong Github, có cách nào tôi có thể thấy số lượt tải xuống cho một repo không?
Câu trả lời:
Cập nhật 2019:
Câu trả lời của Ustin chỉ ra:
/repos/:owner/:repo/traffic/clones
, để có được tổng số bản sao và phân tích mỗi ngày hoặc tuần, nhưng: chỉ trong 14 ngày qua./repos/:owner/:repo/releases/:release_id
để nhận số lượt tải xuống tài sản của bạn (các tệp được đính kèm với bản phát hành), trường download_count
được đề cập bên dưới, nhưng, như đã nhận xét , chỉ trong 30 bản phát hành gần đây nhất ..Cập nhật 2017
Bạn vẫn có thể sử dụng API GitHub để lấy số lượt tải xuống cho các bản phát hành của mình (không chính xác những gì được yêu cầu)
Xem " Nhận một bản phát hành ", download_count
trường.
Không còn màn hình giao thông đề cập đến số lượng bản sao repo.
Thay vào đó, bạn phải dựa vào các dịch vụ của bên thứ ba như:
www.netguru.co/gititback
), nhưng thậm chí không bao gồm số lượng bản sao.githubstats0
, được đề cập dưới đây bởi Aveek Saha .
www.somsubhra.com/github-release-stats , được đề cập dưới đây .
Ví dụ, đây là số cho bản phát hành git mới nhất cho Windows
Cập nhật tháng 8 năm 2014
GitHub cũng đề xuất số lượng bản sao cho repo trong Biểu đồ lưu lượng truy cập của nó:
Xem " Đồ thị bản sao "
Cập nhật tháng 10 năm 2013
Như đã đề cập bên dưới bởi andyberry88 , và như tôi trình bày chi tiết tháng Bảy năm ngoái , GitHub tại đề nghị phát hành (xem API của nó ), trong đó có download_count
lĩnh vực .
Michele Milidoni , trong câu trả lời (nâng cao) của mình , không sử dụng trường đó trong kịch bản python của mình .
( trích xuất rất nhỏ )
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")
Câu trả lời gốc (tháng 12 năm 2010)
Tôi không chắc chắn bạn có thể thấy thông tin đó (nếu nó được ghi lại), vì tôi không thấy thông tin đó trong API Kho lưu trữ GitHub :
$ 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
Bạn chỉ có thể xem nó có tải xuống hay không.
download_count
lĩnh vực API phát hành, bao gồm số lượt tải xuống bản phát hành (không phải lúc nào cũng là zip và không phải là bản sao)
git clone
trường hợp. Kiểm tra với hỗ trợ GitHub để xác nhận.
Tôi đã viết một ứng dụng web nhỏ bằng javascript để hiển thị số lượng tải xuống của tất cả các tài sản trong các bản phát hành có sẵn của bất kỳ dự án nào trên Github. Bạn có thể dùng thử ứng dụng tại đây: http://somsubhra.github.io/github-release-stats/
GitHub đã từ chối hỗ trợ tải xuống và hiện hỗ trợ 'Phát hành' - https://github.com/blog/1547-release-your-software . Để tạo bản phát hành, hãy sử dụng Giao diện người dùng GitHub hoặc tạo thẻ chú thích (http: // git-scm.com/book/ch2-6.html) và thêm ghi chú phát hành vào GitHub. Sau đó, bạn có thể tải lên các tệp nhị phân hoặc 'tài sản' cho mỗi bản phát hành.
Khi bạn có một số bản phát hành, API GitHub hỗ trợ nhận thông tin về chúng và tài sản của chúng.
curl -i \
https://api.github.com/repos/:owner/:repo/releases \
-H "Accept: application/vnd.github.manifold-preview+json"
Tìm mục 'download_count'. Có thêm thông tin tại http://developer.github.com/v3/repose/release/ . Phần này của API vẫn còn trong giai đoạn xem trước ATM nên có thể thay đổi.
API phát hành của GitHub hiện đã hết thời gian xem trước nên tiêu đề 'Chấp nhận' không còn cần thiết - http://developer.github.com/changes/2013-11-04-release-api-is-official/
Mặc dù vậy, việc tiếp tục thêm tiêu đề 'Chấp nhận' sẽ không gây hại gì.
downloads
trường trong tài sản nữa (ít nhất là sử dụng kỹ thuật này)?
download_count
là trường cho biết số lượt tải xuống - ví dụ như trong api.github.com/repose/twbs/bootstrap/release . Điều đáng chú ý là chỉ có 'bản phát hành' sẽ hiển thị trong danh sách này, các thẻ hiển thị trong trang phát hành của một repo không xuất hiện trong danh sách API, xem developer.github.com/v3/repose/release . Ví dụ: github.com/jquery/jquery/release liệt kê một số thẻ trong phần phát hành nhưng một danh sách trống được trả về cho api.github.com/repose/jquery/jquery/release .
count=0
)? Hoặc chỉ hiển thị trường cho các yêu cầu Clone? Xem cái này, không có download_count
: api.github.com/repose/demisjohn/pytrimsetup/release . Trang github cho điều đó ở đây: github.com/demisjohn/pyTRIMSetup/release
bootstrap-XYZ-dist.zip
tài sản là download_count
lĩnh vực liên quan đến. Nếu bạn muốn xem có bao nhiêu người đang tải xuống một bản phát hành, bạn cần tải lên một bản phát hành. Theo tôi biết, không có cách nào để xem có bao nhiêu người đã nhân bản / tải xuống một kho lưu trữ thông qua API. Chế độ xem biểu đồ (từ stackoverflow.com/a/4339085/2634854 ở trên) có thể cung cấp cho bạn những gì sau đó.
Trước đây, có hai phương pháp mã tải xuống trong Github: sao chép hoặc tải xuống dưới dạng zip một .git repo hoặc tải lên một tệp (ví dụ: nhị phân) để tải xuống sau.
Khi tải xuống một repo (sao chép hoặc tải xuống dưới dạng zip), Github không tính số lần tải xuống cho các giới hạn kỹ thuật. Sao chép một kho lưu trữ là một hoạt động chỉ đọc. Không có xác thực cần thiết. Hoạt động này có thể được thực hiện thông qua nhiều giao thức, bao gồm HTTPS, cùng một giao thức mà trang web sử dụng để hiển thị repo trong trình duyệt. Rất khó để đếm nó.
Xem: http://git-scm.com/book/en/Git-on-the-Server-The-Prot Protocol
Gần đây, Github không dùng chức năng tải xuống. Điều này là do họ hiểu rằng Github tập trung vào việc xây dựng phần mềm và không phân phối nhị phân.
Như đã đề cập, API GitHub trả về số lượt tải xuống của các bản phát hành tệp nhị phân. Tôi đã phát triển một tập lệnh nhỏ để dễ dàng lấy số lượt tải xuống theo dòng lệnh.
Rất muộn, nhưng đây là câu trả lời bạn muốn:
https://api.github.com/repos/ [git username] / [git project] /releases
Tiếp theo, tìm id của dự án bạn đang tìm kiếm trong dữ liệu. Nó nên ở gần đỉnh, bên cạnh các url. Sau đó, điều hướng đến
https://api.github.com/repos/ [git username] / [git project] /releases/ [id] / assets
Trường có tên download_count là câu trả lời của bạn.
EDIT: Thủ đô quan trọng trong tên người dùng và tên dự án của bạn
{ "message": "Not Found", "documentation_url": "https://developer.github.com/v3" }
API Github không cung cấp thông tin cần thiết nữa. Hãy xem trang phát hành , được đề cập trong câu trả lời của Stan Towianski . Như chúng ta đã thảo luận trong các nhận xét cho câu trả lời đó, API Github chỉ báo cáo các bản tải xuống của 1 trong ba tệp mà anh ta cung cấp cho mỗi bản phát hành.
Tôi đã kiểm tra các giải pháp, được cung cấp trong một số câu trả lời khác cho câu hỏi này. Câu trả lời của Vonc trình bày phần thiết yếu của giải pháp của Michele Milidoni . Tôi đã cài đặt tập lệnh gdc của anh ấy với kết quả như sau
# ./gdc stant
mdcsvimporter.mxt: 37 downloads
mdcsvimporter.mxt: 80 downloads
How-to-use-mdcsvimporter-beta-16.zip: 12 downloads
Như bạn có thể thấy rõ, gdc không báo cáo số lượt tải xuống của các tệp tar.gz và zip.
Nếu bạn muốn kiểm tra mà không cài đặt bất cứ thứ gì, hãy thử trang web nơi Somsubhra đã cài đặt giải pháp, được đề cập trong câu trả lời của anh ấy . Điền vào 'stant' làm tên người dùng Github và 'mdcsvimporter2015' làm tên Kho lưu trữ và bạn sẽ thấy những thứ như:
Download Info:
mdcsvimporter.mxt(0.20MB) - Downloaded 37 times.
Last updated on 2015-03-26
Than ôi, một lần nữa chỉ là một báo cáo mà không cần tải xuống các tệp tar.gz và zip. Tôi đã kiểm tra cẩn thận thông tin mà API của Github trả về, nhưng nó không được cung cấp ở bất cứ đâu. Hiện tại download_count mà API không trả lại còn lâu mới hoàn thành.
Để kiểm tra số lần tệp / gói phát hành được tải xuống, bạn có thể truy cập https://githubstats0.firebasản.com
Nó cung cấp cho bạn tổng số lượt tải xuống và chia nhỏ tổng số lượt tải xuống cho mỗi thẻ phát hành.
Cuối cùng tôi đã viết một kịch bản cạp để tìm số lượng bản sao của mình:
#!/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'
Điều này sẽ lấy dữ liệu từ cùng một điểm cuối mà biểu đồ nhân bản của Github sử dụng và nhổ ra tổng số từ nó. Dữ liệu cũng bao gồm số lượng mỗi ngày, thay thế .summary
chỉ .
để xem những số được in đẹp.
Dựa trên câu trả lời của VonC và Michele Milidoni, tôi đã tạo ra bookmarklet này hiển thị số liệu thống kê tải xuống của github được lưu trữ nhị phân được phát hành.
Lưu ý: Do các sự cố với trình duyệt liên quan đến triển khai Chính sách bảo mật nội dung, bookmarklets có thể tạm thời vi phạm một số chỉ thị CSP và về cơ bản có thể không hoạt động đúng khi chạy trên github trong khi CSP được bật.
Mặc dù nó rất nản lòng, bạn có thể vô hiệu hóa CSP trong Firefox như một cách giải quyết tạm thời. Mở về: config và đặt security.csp.enable thành false.
Để cố gắng làm rõ hơn:
cho dự án github này: stant / mdcsvimporter2015
https://github.com/stant/mdcsvimporter2015
với các bản phát hành tại
https://github.com/stant/mdcsvimporter2015/release
truy cập http hoặc https: (ghi chú đã thêm "api." và "/ repos")
https://api.github.com/repose/stant/mdcsvimporter2015/release
bạn sẽ nhận được đầu ra json này và bạn có thể tìm kiếm "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"
hoặc trên dòng lệnh do:
wget --no-check-cert https://api.github.com/repose/stant/mdcsvimporter2015/release
Như đã nêu, bạn có thể nhận thông tin về các Bản phát hành của mình thông qua API .
Đối với những người sử dụng WordPress, tôi đã phát triển plugin này: Tải xuống bản phát hành GitHub . Nó cho phép bạn có được số lượt tải xuống, các liên kết và nhiều thông tin hơn cho các bản phát hành của kho GitHub.
Để giải quyết câu hỏi ban đầu, shortcode [grd_count user="User" repo="MyRepo"]
sẽ trả về số lượt tải xuống cho một kho lưu trữ. Con số này tương ứng với tổng của tất cả các giá trị đếm tải xuống của tất cả các bản phát hành cho một kho lưu trữ GitHub.
Thí dụ:
Trả lời từ năm 2019:
Tôi đã tạo một ứng dụng web hiển thị số liệu thống kê phát hành GitHub ở định dạng rõ ràng: https://hanadigital.github.io/grev/
Đối với những người cần giải pháp trong Python, tôi đã viết một tập lệnh đơn giản.
ghstats.py [user] [repo] [tag] [options]
Đây là một giải pháp python sử dụng pip install PyGithub
gói
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
vàzip
các tệp).