Yanıtlar:
Güncelleme 2019:
Dustin bireyin cevabı işaret ettiği:
/repos/:owner/:repo/traffic/clones
, günlük veya haftalık toplam klon sayısını ve dökümünü almak için, ancak: yalnızca son 14 gün boyunca./repos/:owner/:repo/releases/:release_id
Varlıklarınızın indirme sürümlerini (sürüme ekli dosyalar), download_count
aşağıda belirtilen alanı almak için API , ancak yorumlandığı gibi yalnızca en son 30 sürüm için.2017 Güncellemesi
Hala kullanabilirsiniz GitHub API için sizin için indirme sayısı elde bültenleri (değil tam isteneni)
"Bkz tek sürümü alın ," download_count
alanını.
Artık repo klonlarının sayısını belirten bir trafik ekranı yok.
Bunun yerine, aşağıdaki gibi üçüncü taraf hizmetlerine güvenmelisiniz:
www.netguru.co/gititback
), ancak bu bile klon sayısını içermez.githubstats0
, aşağıda Aveek Saha tarafından belirtilmiştir .
www.somsubhra.com/github-release-stats , aşağıda belirtilmiştir .
Örneğin, Windows sürümü için en son git'in numarası
Ağustos 2014 Güncellemesi
GitHub ayrıca Trafik Grafiğinde repo için klon sayısı önermektedir:
Bkz. " Klon Grafikler "
Ekim 2013 Güncellemesi
Aşağıda andyberry88 tarafından belirtildiği gibi ve geçen Temmuz ayında ayrıntılı olarak belirttiğim gibi GitHub şimdi bir alanı olan sürümleri ( API'sine bakın ) öneriyor .download_count
Michele Milidoni , (oylanan) cevabında , bu alanı python senaryosunda kullanıyor .
( çok küçük ekstrakt )
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")
Orijinal cevap (Aralık 2010)
GitHub Depo API'sında görmediğim için bu bilgileri (hiç kaydedilmişse) görebildiğinizden emin değilim :
$ 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
Sadece indirilip indirilmediğini görebilirsiniz.
download_count
, yayın API'sının alanı hakkında konuşuyorsanız , yayın indirme sayısını (her zaman zip olmayan ve klon olmayan) içermelidir
git clone
örnekler. Onay için GitHub desteğine başvurun.
Github'daki herhangi bir projenin mevcut sürümlerindeki tüm varlıkların indirme sayısını göstermek için javascript'te küçük bir web uygulaması yazdım . Uygulamayı buradan deneyebilirsiniz: http://somsubhra.github.io/github-release-stats/
GitHub indirme desteğini kullanımdan kaldırmıştır ve artık 'Bültenleri' desteklemektedir - https://github.com/blog/1547-release-your-software . Bir sürüm oluşturmak için GitHub kullanıcı arayüzünü kullanın veya açıklamalı bir etiket oluşturun (http: // git-scm.com/book/ch2-6.html) ve buna GitHub'da sürüm notları ekleyin. Daha sonra her bir sürüme ikili dosyalar veya 'öğeler' yükleyebilirsiniz.
Bazı sürümleriniz olduğunda, GitHub API onlar ve varlıkları hakkında bilgi almayı destekler.
curl -i \
https://api.github.com/repos/:owner/:repo/releases \
-H "Accept: application/vnd.github.manifold-preview+json"
'Download_count' girişini arayın. Daha fazla bilgi için http://developer.github.com/v3/repos/releases/ . API'nın bu kısmı hala ATM önizleme döneminde olduğundan değişebilir.
GitHub'ın yayınlama API'sı artık önizleme süresinin dışında olduğundan 'Kabul' başlığına artık gerek yok - http://developer.github.com/changes/2013-11-04-releases-api-is-official/
Yine de 'Accept' başlığını eklemeye devam etmek hiçbir zararı olmaz.
downloads
varlıklarda bir alan göstermediğini düşünmek yanlış mıyım (en azından bu tekniği kullanarak)?
download_count
indirme sayısını gösteren alandır - örneğin api.github.com/repos/twbs/bootstrap/releases . Bu listede yalnızca 'sürümlerin' görüneceğini belirtmek gerekir, bir repo'nun sürümler sayfasında gösterilen etiketler API listesinde görünmez, bkz. Developer.github.com/v3/repos/releases . Örneğin github.com/jquery/jquery/releases , sürümler bölümünde birkaç etiketi listeler, ancak api.github.com/repos/jquery/jquery/releases için boş bir liste döndürülür .
count=0
)? Veya yalnızca Klon istekleri için alan gösterir? Şuna bakın, no download_count
: api.github.com/repos/demisjohn/pytrimsetup/releases . Bunun için github sayfası burada: github.com/demisjohn/pyTRIMSetup/releases
bootstrap-XYZ-dist.zip
, download_count
alanla ilgili olan bir varlığı vardır . Bir sürümü kaç kişinin indirdiğini görmek istiyorsanız bir sürüm zip'i yüklemeniz gerekir. Bildiğim kadarıyla, kaç kişinin API aracılığıyla bir arşivi klonladığını / indirdiğini görmenin bir yolu yok. Grafik görünümü ( yukarıdaki stackoverflow.com/a/4339085/2634854 adresinden) size neyin peşinde olduğunuzu verebilir.
Eskiden, Github'da iki indirme kodu yöntemi vardı: daha sonra indirmek için bir dosya (örneğin, bir ikili) yükleyin veya zip olarak .git repo olarak indirin.
Bir repo indirirken (klonla veya zip olarak indir), Github teknik sınırlamalar için indirme sayısını saymaz. Bir havuzu klonlamak salt okunur bir işlemdir. Kimlik doğrulaması gerekmez. Bu işlem, web sayfasının repo'yu tarayıcıda göstermek için kullandığı protokol olan HTTPS dahil olmak üzere birçok protokol aracılığıyla yapılabilir. Saymak çok zor.
Bkz. Http://git-scm.com/book/en/Git-on-the-Server-The-Protocols
Son zamanlarda, Github indirme işlevini kullanımdan kaldırıyor. Bunun nedeni, Github'un dağıtım ikili dosyalarına değil, yazılım oluşturmaya odaklandığını anlamalarıydı.
Belirtildiği gibi, GitHub API ikili dosya sürümlerinin indirme sayısını döndürür. Komut satırına göre indirme sayısını kolayca almak için küçük bir komut dosyası geliştirdim .
Çok geç, ama burada istediğiniz cevap var:
https://api.github.com/repos/ [git username] / [git project] /releases
Ardından, verilerde aradığınız projenin kimliğini bulun. URL'lerin yanında, üste yakın olmalıdır. Ardından, şuraya gidin:
https://api.github.com/repos/ [git username] / [git project] /releases/ [id] / assets
Download_count adlı alan cevabınızdır.
EDIT: Başkentler kullanıcı adınız ve proje adınız için önemlidir
{ "message": "Not Found", "documentation_url": "https://developer.github.com/v3" }
Github API artık gerekli bilgileri sağlamıyor. Stan Towianski'nin cevabında belirtilen yayınlar sayfasına göz atın . Bu cevabın yorumlarında tartıştığımız gibi, Github API yalnızca yayın başına sunduğu üç dosyadan 1'inin indirilmesini bildiriyor.
Bu soruların diğer cevaplarında verilen çözümleri kontrol ettim. Vonc'un cevabı Michele Milidoni'nin çözümünün önemli bir bölümünü sunuyor . Onun gdc betiğini aşağıdaki sonuçla yükledim
# ./gdc stant
mdcsvimporter.mxt: 37 downloads
mdcsvimporter.mxt: 80 downloads
How-to-use-mdcsvimporter-beta-16.zip: 12 downloads
Gördüğünüz gibi, gdc tar.gz ve zip dosyalarının indirme sayısını bildirmez.
Hiçbir şey yüklemeden kontrol etmek istiyorsanız, deneyin web sayfasını Somsubhra belirtilen çözüm, yüklediği onun cevabını . Github kullanıcı adı olarak 'stant' ve Depo adı olarak 'mdcsvimporter2015' yazın ve şöyle bir şey göreceksiniz:
Download Info:
mdcsvimporter.mxt(0.20MB) - Downloaded 37 times.
Last updated on 2015-03-26
Ne yazık ki, bir kez daha tar.gz ve zip dosyalarının indirilmediği bir rapor. Github'ın API'sinin döndürdüğü bilgileri dikkatlice inceledim, ancak hiçbir yerde sağlanmadı. API'nın döndürdüğü download_count bugünlerde tamamlanmaktan çok uzak.
Bir sürüm dosyasının / paketin kaç kez indirildiğini kontrol etmek için https://githubstats0.firebaseapp.com adresine gidebilirsiniz.
Her bir indirme etiketi için toplam indirme sayısı ve toplam indirme sayısının dökümünü verir.
Klon sayımı bulmak için bir kazıyıcı komut dosyası yazdım:
#!/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'
Bu, Github'un klon grafiğinin kullandığı aynı uç noktadan verileri alır ve toplamları ondan verir. Veriler ayrıca günlük sayımları da içerir, .summary
yalnızca .
güzel yazdırılanları görmek için ile değiştirin .
VonC ve Michele Milidoni cevaplarına dayanarak, github tarafından barındırılan yayınlanan ikili dosyaların indirme istatistiklerini gösteren bu yer imini oluşturdum .
Not: İçerik Güvenliği İlkesi uygulamasına ilişkin tarayıcılarla ilgili sorunlar nedeniyle yer işaretleri, bazı CSP yönergelerini geçici olarak ihlal edebilir ve CSP etkinken github üzerinde çalışırken temel olarak düzgün çalışmayabilir.
Cesareti kırılmış olsa da, Firefox'taki CSP'yi geçici bir çözüm olarak devre dışı bırakabilirsiniz. About: config.csp.enable öğesini false olarak ayarlayın.
Bunu daha açık hale getirmek
için : bu github projesi için: stant / mdcsvimporter2015
https://github.com/stant/mdcsvimporter2015
, https://github.com/stant/mdcsvimporter2015/releases adresindeki sürümlerle
http veya https'ye gidin: (not "api" ve "/ repos" eklendi)
https://api.github.com/repos/stant/mdcsvimporter2015/releases
bu json çıktısını alırsınız ve "download_count" için arama yapabilirsiniz:
"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"
veya komut satırında şunları yapın:
wget --no-check-certificate https://api.github.com/repos/stant/mdcsvimporter2015/releases
Daha önce belirtildiği gibi, Bültenleriniz hakkında API aracılığıyla bilgi alabilirsiniz .
WordPress kullananlar için şu eklentiyi geliştirdim: GitHub Release Downloads . GitHub depolarının sürümleri için indirme sayısını, bağlantıları ve daha fazla bilgi edinmenizi sağlar.
Orijinal soruyu ele almak için, kısa kod [grd_count user="User" repo="MyRepo"]
bir havuz için indirme sayısını döndürür. Bu sayı, bir GitHub deposu için tüm sürümlerin tüm indirme sayısı değerlerinin toplamına karşılık gelir.
Misal:
2019'dan cevap:
GitHub sürüm istatistiklerini temiz bir biçimde gösteren bir web uygulaması yapmıştım: https://hanadigital.github.io/grev/
Python'da çözüme ihtiyaç duyanlar için basit bir senaryo yazdım.
ghstats.py [user] [repo] [tag] [options]
İşte pip install PyGithub
paketi kullanarak bir python çözümü
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
vezip
dosyalar) istatistik indirmek mümkün değildir .