Di Github, apakah ada cara agar saya dapat melihat jumlah unduhan untuk repo?
Di Github, apakah ada cara agar saya dapat melihat jumlah unduhan untuk repo?
Jawaban:
Perbarui 2019:
/repos/:owner/:repo/traffic/clones
, untuk mendapatkan jumlah klon dan kerusakan per hari atau minggu, tetapi: hanya selama 14 hari terakhir./repos/:owner/:repo/releases/:release_id
untuk mendapatkan jumlah unduhan aset Anda (file yang dilampirkan ke rilis), bidang yang download_count
disebutkan di bawah, tetapi, seperti yang dikomentari , hanya untuk 30 rilis terbaru ..Perbarui 2017
Anda masih bisa menggunakan GitHub API untuk mendapatkan jumlah download untuk rilis Anda (yang tidak persis seperti yang diminta)
Lihat " Dapatkan rilis tunggal ", download_count
kolomnya.
Tidak ada lagi layar lalu lintas yang menyebutkan jumlah klon repo.
Sebaliknya, Anda harus mengandalkan layanan pihak ketiga seperti:
www.netguru.co/gititback
), tetapi bahkan itu tidak termasuk jumlah klon.githubstats0
, disebutkan di bawah oleh Aveek Saha .
www.somsubhra.com/github-release-stats , disebutkan di bawah ini .
Misalnya, berikut adalah nomor rilis git untuk Windows terbaru
Update Agustus 2014
GitHub juga mengusulkan jumlah klon untuk repo di Grafik Lalu Lintasnya:
Lihat " Grafik Klon "
Perbarui Oktober 2013
Seperti yang disebutkan di bawah ini oleh andyberry88 , dan seperti yang saya rinci Juli lalu , GitHub sekarang mengusulkan rilis (lihat API ), yang memiliki download_count
lapangan .
Michele Milidoni , dalam jawabannya (suara positif) , memang menggunakan bidang itu dalam skrip python-nya .
( ekstrak sangat kecil )
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")
Jawaban asli (Desember 2010)
Saya tidak yakin Anda dapat melihat informasi itu (jika tercatat sama sekali), karena saya tidak melihatnya di 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
Anda hanya dapat melihat apakah ada unduhan atau tidak.
download_count
bidang API rilis, itu harus mencakup jumlah unduhan rilis (yang tidak selalu zip, dan bukan klon)
git clone
contoh. Periksa dengan dukungan GitHub untuk konfirmasi.
Saya telah menulis aplikasi web kecil dalam javascript untuk menunjukkan jumlah unduhan semua aset dalam rilis yang tersedia dari proyek apa pun di Github. Anda dapat mencoba aplikasinya di sini: http://somsubhra.github.io/github-release-stats/
GitHub telah menghentikan dukungan unduhan dan sekarang mendukung 'Rilis' - https://github.com/blog/1547-release-your-software . Untuk membuat rilis, gunakan GitHub UI atau buat tag beranotasi (http: // git-scm.com/book/ch2-6.html) dan tambahkan catatan rilis ke dalamnya di GitHub. Anda kemudian dapat mengupload biner, atau 'aset', ke setiap rilis.
Setelah Anda memiliki beberapa rilis, GitHub API mendukung mendapatkan informasi tentang mereka, dan asetnya.
curl -i \
https://api.github.com/repos/:owner/:repo/releases \
-H "Accept: application/vnd.github.manifold-preview+json"
Cari entri 'download_count'. Info lebih lanjut di http://developer.github.com/v3/repos/releases/ . Bagian dari API ini masih dalam ATM periode pratinjau sehingga dapat berubah.
API rilis GitHub sekarang keluar dari periode pratinjau sehingga header 'Terima' tidak lagi diperlukan - http://developer.github.com/changes/2013-11-04-releases-api-is-official/
Tidak ada salahnya untuk terus menambahkan tajuk 'Terima'.
downloads
bidang dalam aset (setidaknya menggunakan teknik ini)?
download_count
adalah bidang yang menunjukkan jumlah unduhan - misalnya di api.github.com/repos/twbs/bootstrap/releases . Perlu dicatat bahwa hanya 'rilis' yang akan muncul dalam daftar ini, tag yang muncul di halaman rilis repo tidak muncul dalam daftar API, lihat developer.github.com/v3/repos/releases . Misalnya github.com/jquery/jquery/releases mencantumkan beberapa tag di bawah bagian rilis tetapi daftar kosong dikembalikan untuk api.github.com/repos/jquery/jquery/releases .
count=0
)? Atau hanya menampilkan bidang untuk permintaan Klon? Lihat ini, dengan no download_count
: api.github.com/repos/demisjohn/pytrimsetup/releases . Halaman github untuk itu ada di sini: github.com/demisjohn/pyTRIMSetup/releases
bootstrap-XYZ-dist.zip
aset yang download_count
terkait dengan bidang tersebut. Jika Anda ingin melihat berapa banyak orang yang mendownload rilis, Anda perlu mengupload zip rilis. Sejauh yang saya tahu, tidak ada cara untuk melihat berapa banyak orang yang telah mengkloning / mendownload arsip melalui API. Tampilan grafik (dari stackoverflow.com/a/4339085/2634854 di atas) mungkin memberi Anda apa yang Anda cari.
Sebelumnya, ada dua metode untuk mengunduh kode di Github: mengkloning atau mengunduh sebagai zip a .git repo, atau mengunggah file (misalnya, biner) untuk diunduh nanti.
Saat mengunduh repo (klon atau unduh sebagai zip), Github tidak menghitung jumlah unduhan untuk batasan teknis. Menggandakan repositori adalah operasi hanya-baca. Tidak diperlukan otentikasi. Operasi ini dapat dilakukan melalui banyak protokol, termasuk HTTPS, protokol yang sama dengan yang digunakan halaman web untuk menampilkan repo di browser. Sangat sulit untuk menghitungnya.
Lihat: http://git-scm.com/book/en/Git-on-the-Server-The-Protocols
Baru-baru ini, Github menghentikan fungsionalitas pengunduhan. Ini karena mereka memahami bahwa Github berfokus pada pembuatan perangkat lunak, dan bukan dalam mendistribusikan binari.
Seperti yang disebutkan, GitHub API mengembalikan jumlah unduhan rilis file biner. Saya mengembangkan skrip kecil untuk dengan mudah mendapatkan jumlah unduhan berdasarkan baris perintah.
Terlambat, tapi inilah jawaban yang Anda inginkan:
https://api.github.com/repos/ [git username] / [git project] /releases
Selanjutnya, temukan id proyek yang Anda cari di data. Ini harus berada di dekat bagian atas, di samping url. Lalu, navigasikan ke
https://api.github.com/repos/ [git username] / [git project] /releases/ [id] / assets
Field bernama download_count adalah jawaban Anda.
EDIT: Modal penting di nama pengguna dan nama proyek Anda
{ "message": "Not Found", "documentation_url": "https://developer.github.com/v3" }
Untuk memeriksa berapa kali file / paket rilis diunduh, Anda dapat membuka https://githubstats0.firebaseapp.com
Ini memberi Anda jumlah unduhan total dan pemecahan total unduhan per tag rilis.
Github API tidak lagi memberikan informasi yang dibutuhkan. Lihatlah halaman rilis , yang disebutkan dalam jawaban Stan Towianski . Seperti yang kita bahas di komentar untuk jawaban itu, Github API hanya melaporkan unduhan 1 dari tiga file yang dia tawarkan per rilis.
Saya telah memeriksa solusinya, disediakan dalam beberapa jawaban lain untuk pertanyaan ini. Jawaban Vonc menyajikan bagian penting dari solusi Michele Milidoni . Saya menginstal skrip gdc-nya dengan hasil sebagai berikut
# ./gdc stant
mdcsvimporter.mxt: 37 downloads
mdcsvimporter.mxt: 80 downloads
How-to-use-mdcsvimporter-beta-16.zip: 12 downloads
Seperti yang Anda lihat dengan jelas, gdc tidak melaporkan jumlah unduhan file tar.gz dan zip.
Jika Anda ingin memeriksa tanpa menginstal apa pun, coba halaman web tempat Somsubhra telah menginstal solusinya, yang disebutkan dalam jawabannya . Isi 'stant' sebagai nama pengguna Github dan 'mdcsvimporter2015' sebagai nama Repositori dan Anda akan melihat hal-hal seperti:
Download Info:
mdcsvimporter.mxt(0.20MB) - Downloaded 37 times.
Last updated on 2015-03-26
Sayangnya, sekali lagi hanya laporan tanpa unduhan file tar.gz dan zip. Saya telah memeriksa dengan cermat informasi yang dikembalikan API Github, tetapi tidak diberikan di mana pun. Download_count yang dikembalikan API masih jauh dari selesai saat ini.
Saya akhirnya menulis skrip pengikis untuk menemukan jumlah klon saya:
#!/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'
Ini akan mengambil data dari titik akhir yang sama dengan yang digunakan grafik klon Github dan mengeluarkan total darinya. Data tersebut juga termasuk hitungan per hari, ganti .summary
dengan hanya .
untuk melihat yang tercetak cantik.
Berdasarkan jawaban VonC dan Michele Milidoni, saya telah membuat bookmarklet ini yang menampilkan statistik unduhan dari binari rilis yang dihosting github.
Catatan: Karena masalah dengan browser yang terkait dengan implementasi Kebijakan Keamanan Konten, bookmarklet dapat melanggar sementara beberapa arahan CSP dan pada dasarnya mungkin tidak berfungsi dengan baik saat dijalankan di github saat CSP diaktifkan.
Meskipun sangat tidak disarankan, Anda dapat menonaktifkan CSP di Firefox sebagai solusi sementara. Buka about: config dan setel security.csp.enable menjadi false.
Untuk mencoba membuatnya lebih jelas:
untuk proyek github ini: stant / mdcsvimporter2015
https://github.com/stant/mdcsvimporter2015
dengan rilis di
https://github.com/stant/mdcsvimporter2015/releases
buka http atau https: (catatan ditambahkan "api." dan "/ repos")
https://api.github.com/repos/stant/mdcsvimporter2015/releases
Anda akan mendapatkan keluaran json ini dan Anda dapat mencari "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"
atau pada baris perintah lakukan:
wget --no-check-certificate https://api.github.com/repos/stant/mdcsvimporter2015/releases
Saya telah membuat aplikasi web yang menunjukkan statistik rilis GitHub dalam format yang bersih: https://hanadigital.github.io/grev/
Seperti yang telah dinyatakan, Anda bisa mendapatkan informasi tentang Rilis Anda melalui API .
Bagi mereka yang menggunakan WordPress, saya mengembangkan plugin ini: GitHub Release Downloads . Ini memungkinkan Anda untuk mendapatkan jumlah unduhan, tautan, dan informasi lebih lanjut untuk rilis repositori GitHub.
Untuk menjawab pertanyaan awal, kode pendek [grd_count user="User" repo="MyRepo"]
akan mengembalikan jumlah unduhan untuk repositori. Jumlah ini sesuai dengan jumlah semua nilai jumlah unduhan dari semua rilis untuk satu repositori GitHub.
Contoh:
Jawaban dari 2019:
Bagi mereka yang membutuhkan solusi dengan Python, saya menulis skrip sederhana.
ghstats.py [user] [repo] [tag] [options]
Berikut adalah solusi python menggunakan pip install PyGithub
paket tersebut
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
danzip
file).