@ KennyTM pertanyaan yang sangat mirip, ya, tapi ini khusus untuk github daripada metode apa pun hanya menggunakan protokol git.
jhabbott
1
FYI, lihat ekstensi chrome ini yang secara otomatis menambahkan ukuran repositori ke ringkasan repositori GitHub github.com/harshjv/github-repo-size . UPDATE: menambahkan ini sebagai jawaban
Harsh Vakharia
Ini sebuah petunjuk: Repositori terbesar saya yang absolut hanya berisi gambar dari berbagai format, ini adalah repo ikon "artwork" yang saya gunakan di berbagai aplikasi. Namun, GitHub melaporkan ukurannya sebagai 0. Jadi saya berasumsi ini hanya mempertimbangkan ukuran file sumber yang diketahui, dan tidak mempertimbangkan jenis file yang tidak dikenal.
Jerry Dodge
Jawaban:
276
Ada cara untuk mengakses informasi ini melalui API GitHub .
Saat mengambil informasi tentang repositori, properti bernama sizedinilai dengan ukuran seluruh repositori (termasuk semua sejarahnya), dalam kilobyte.
Sebagai contoh, repositori Git memiliki bobot sekitar 124 MB. The sizemilik JSON payload kembali dihargai untuk 124283.
Memperbarui
Ukurannya memang dinyatakan dalam kilobyte berdasarkan pada penggunaan disk dari repositori telanjang server-side. Namun, untuk menghindari pemborosan ruang terlalu banyak dengan repositori dengan jaringan besar, GitHub bergantung pada Alternatif Git . Dalam konfigurasi ini, menghitung penggunaan disk terhadap repositori kosong tidak memperhitungkan penyimpanan objek bersama dan dengan demikian mengembalikan nilai "tidak lengkap" melalui panggilan API.
Informasi ini telah diberikan oleh dukungan GitHub.
Bukankah ukuran dalam MB sekarang -> Tidak begitu jelas, sepertinya itu tergantung pada repo yang ditanyai ... Repo kecil mengekspos ukuran dalam byte, yang besar dalam megabita. Saya telah membuka masalah di dukungan GitHub. Saya akan memperbarui jawabannya segera setelah masalah ditutup.
nulltoken
6
Ini sepertinya tidak berfungsi untuk repo pribadi. Apakah saya melewatkan sesuatu? Terima kasih!
@nulltoken Apa tanggapan atas pertanyaan tentang kB / MB dll?
nealmcb
2
Hanya mengadakan repo (9 September 2018) dan ini kB, bukan MB
Jacob Stamm
109
Jika Anda memiliki repositori, Anda dapat menemukan ukuran yang tepat dengan membuka Pengaturan Akun Anda → Repositori ( https://github.com/settings/repositori ), dan ukuran repositori ditampilkan di sebelah penunjukannya.
Jika Anda tidak memiliki repositori, Anda dapat membayarnya lalu memeriksa di tempat yang sama.
Agak diretas: gunakan download as a zip fileopsi, baca ukuran file yang ditunjukkan dan kemudian batalkan.
Saya tidak ingat apakah mengunduh sebagai zip pernah berfungsi, tetapi bagaimanapun, melakukannya sekarang hanya mengunduh cabang yang dipilih saat ini tanpa riwayat.
Tidakkah orang harus memperhitungkan kompresi zip? Kode sumber dan file teks dapat dikompresi hingga sekitar 60% saya pikir.
ffledgling
Saya tidak mengetahui cara untuk memeriksa rasio kompresi zip tanpa menyelesaikan unduhan. Tentu saja Anda dapat menyelesaikan unduhan dan kemudian memeriksa rasio kompresi. Namun, pada titik itu, Anda mungkin juga unzip dan memeriksa ukuran repo secara langsung. Ini benar-benar tergantung pada seberapa akurat Anda perlu. Dan jika Anda mampu mengunduh repo untuk memeriksa.
CoatedMoose
1
Saya tidak dapat menemukannya Settings > Repositories, tetapi malah menemukan ukuran repo di bawah Account Settings > Repositorieshalaman utama git Anda. Tentu saja, ini hanya berfungsi dengan repo yang Anda miliki (atau garpu).
modulitos
Pengaturan akun organisasi tampaknya tidak menunjukkan ukuran repo, jadi apakah hanya jika Anda memiliki repo sebagai pengguna dan bukan sebagai organisasi?
Bennett Brown
2
Ukuran file zip tidak ada indikasi sama sekali dari ukuran repositori aktual: 1) itu hanya mencakup snapshot repositori pada revisi yang diberikan tanpa riwayat dan 2) Repositori Git disimpan sebagai file paket yang dikompresi, jangan simpan duplikat dll.
kynan
74
Jika Anda menggunakan browser Google Chrome, Anda dapat menginstal ekstensi Ukuran Repositori GitHub .
@BaneeIshaqueK ini tidak sama tetapi itu menunjukkan ukuran repo cek di sini
Syed Shamikh Shabbir
1
UPDATE Sekarang, berfungsi dengan baik bahkan dalam repositori pribadi selama Anda memberikan token Github.
Siddhant Rimal
2
Masih tidak dapat diandalkan, ia menggunakan API GitHub, yang tidak melaporkan ukuran yang benar. Saya memiliki repositori dengan hanya gambar (tanpa kode), dan API melaporkan ukurannya sebagai 0, meskipun itu repo terbesar yang saya miliki. Ekstensi ini bahkan tidak menunjukkan ukuran repo khusus ini (mungkin karena melihat 0).
Jerry Dodge
19
@larowlan kode sampel yang bagus. Dengan GitHub API V3 yang baru, pernyataan curl perlu diperbarui. Juga, login tidak lagi diperlukan:
Ini sepertinya tidak berfungsi untuk repo pribadi. Apakah ada sesuatu yang saya lewatkan? Terima kasih!
nroose
1
Saya berharap Anda akan memperluas jawaban Anda lebih banyak dengan beberapa penjelasan, sehingga orang dapat mengubahnya sesuai dengan kebutuhan mereka.
Shimmy Weitzhandler
10
Untuk melakukan ini dengan curl (sudo apt-get curl) dan json pretty (sudo gem install jsonpretty json):
Pada membuat permintaan GET, Anda akan dibanjiri dengan beberapa data JSON dan mungkin pada nomor baris 78 Anda akan melihat ukuran bernama kunci yang akan mengembalikan ukuran repositori.
Kiat: Saat bekerja dengan JSON, saya sarankan Anda untuk menambahkan plugin yang memformat data JSON untuk memudahkan membaca JSON. Instal pengaya .
A) Karena banyak yang melaporkan, ukuran ini tidak akurat dan tidak dapat diandalkan. B) Bahkan jika itu, catatan Anda tentang membaca JSON secara visual, nomor baris, dan format ... semua tidak ada gunanya. JSON tidak diperuntukkan bagi manusia untuk dibaca, ini diperuntukkan bagi komputer untuk membaca. Anda harus menyebutkan untuk membaca sizekunci dalam respons, bukan baris 78. Belum lagi, pembuat format yang berbeda akan memiliki jeda baris yang berbeda di tempat yang berbeda, meninggalkan data yang diinginkan pada nomor baris yang berbeda.
Jerry Dodge
@ JerryDodge hal pertama yang Anda harus hati-hati membaca jawaban yang telah saya sebutkan `` `Anda harus melihat kunci bernama ukuran` `` dan saya berkata Anda harus probablymelihatnya di saluran no 78, sehingga menunjukkan Anda harus melihat kunci ukuran di suatu tempat di sekitar 78 , hal kedua jika ukuran dari apis github tidak akurat, saya tidak berpikir Anda akan menemukan sesuatu yang lebih akurat daripada apis github.
maheshmnj
Saya memiliki repositori gambar. Gambar adalah data biner. Tidak ada file teks dalam repo ini sama sekali. GitHub melaporkan di mana-mana bahwa ia mengkonsumsi 0 byte. Bahkan situs web / plugin.
Jerry Dodge
0
Untuk merangkum solusi @larowlan, @VMTrooper, dan @vahid chakoshy:
#!/usr/bin/env bashif["$#"-eq 2];then
echo "$(echo "scale=2; $(curl https://api.github.com/repos/$1/$2 2>/dev/null \
| grep size | head -1| tr -dc '[:digit:]')/1024" | bc)MB"elif["$#"-eq 3]&&["$1"=="-z"];then# For some reason Content-Length header is returned only on second try
curl -I https://codeload.github.com/$2/$3/zip/master &>/dev/null
echo "$(echo "scale=2; $(curl -I https://codeload.github.com/$2/$3/zip/master \
2>/dev/null | grep Content-Length| cut -d' '-f2 | tr -d '\r')/1024/1024" \
| bc)MB"else
printf "Usage: $(basename $0) [-z] OWNER REPO\n\n"
printf "Get github repository size or, optionally [-z], the size of the zipped\n"
printf "master branch (`Download ZIP` link on repo page).\n"
exit 1fi
Jawaban:
Ada cara untuk mengakses informasi ini melalui API GitHub .
GET /repos/:user/:repo
Saat mengambil informasi tentang repositori, properti bernama
size
dinilai dengan ukuran seluruh repositori (termasuk semua sejarahnya), dalam kilobyte.Sebagai contoh, repositori Git memiliki bobot sekitar 124 MB. The
size
milik JSON payload kembali dihargai untuk124283
.Memperbarui
Ukurannya memang dinyatakan dalam kilobyte berdasarkan pada penggunaan disk dari repositori telanjang server-side. Namun, untuk menghindari pemborosan ruang terlalu banyak dengan repositori dengan jaringan besar, GitHub bergantung pada Alternatif Git . Dalam konfigurasi ini, menghitung penggunaan disk terhadap repositori kosong tidak memperhitungkan penyimpanan objek bersama dan dengan demikian mengembalikan nilai "tidak lengkap" melalui panggilan API.
Informasi ini telah diberikan oleh dukungan GitHub.
sumber
$ curl -u "{:username}" https://api.github.com/repos/{:organization}/{:repository}
. Lihat developer.github.com/v3/#authenticationJika Anda memiliki repositori, Anda dapat menemukan ukuran yang tepat dengan membuka Pengaturan Akun Anda → Repositori ( https://github.com/settings/repositori ), dan ukuran repositori ditampilkan di sebelah penunjukannya.
Jika Anda tidak memiliki repositori, Anda dapat membayarnya lalu memeriksa di tempat yang sama.
Agak diretas: gunakandownload as a zip file
opsi, baca ukuran file yang ditunjukkan dan kemudian batalkan.Saya tidak ingat apakah mengunduh sebagai zip pernah berfungsi, tetapi bagaimanapun, melakukannya sekarang hanya mengunduh cabang yang dipilih saat ini tanpa riwayat.
sumber
Settings > Repositories
, tetapi malah menemukan ukuran repo di bawahAccount Settings > Repositories
halaman utama git Anda. Tentu saja, ini hanya berfungsi dengan repo yang Anda miliki (atau garpu).Jika Anda menggunakan browser Google Chrome, Anda dapat menginstal ekstensi Ukuran Repositori GitHub .
Repo di sini: https://github.com/harshjv/github-repo-size
sumber
@larowlan kode sampel yang bagus. Dengan GitHub API V3 yang baru, pernyataan curl perlu diperbarui. Juga, login tidak lagi diperlukan:
Sebagai contoh:
mengembalikan
931668
(dalam KB), yang hampir merupakan GB.sumber
Untuk melakukan ini dengan curl (sudo apt-get curl) dan json pretty (sudo gem install jsonpretty json):
Ganti YOURGITHUBUSERNAME dengan nama pengguna GitHub Anda (lihat gambar).
Ganti PEMILIK dengan Git username pemilik repositori. Ganti REPOSITORY dengan nama repositori.
Atau sebagai skrip Bash yang bagus (rekatkan ini dalam file bernama gitrepo-info):
Gunakan seperti ini:
Ini akan memberi saya informasi tentang repositori pisi / reel di GitHub.
sumber
Anda harus mengikuti API GitHub. Lihat dokumentasi di sini untuk semua detail mengenai repositori Anda. Anda harus membuat permintaan GET sebagai:
DAPATKAN / repos /: pemilik /: repositori
Anda perlu mengganti dua hal:
Misalnya, nama pengguna saya maheshmnj , dan saya memiliki repositori, flutter-ui-nice , jadi URL GET saya adalah:
Pada membuat permintaan GET, Anda akan dibanjiri dengan beberapa data JSON dan mungkin pada nomor baris 78 Anda akan melihat ukuran bernama kunci yang akan mengembalikan ukuran repositori.
Kiat: Saat bekerja dengan JSON, saya sarankan Anda untuk menambahkan plugin yang memformat data JSON untuk memudahkan membaca JSON. Instal pengaya .
sumber
size
kunci dalam respons, bukan baris 78. Belum lagi, pembuat format yang berbeda akan memiliki jeda baris yang berbeda di tempat yang berbeda, meninggalkan data yang diinginkan pada nomor baris yang berbeda.probably
melihatnya di saluran no 78, sehingga menunjukkan Anda harus melihat kunci ukuran di suatu tempat di sekitar 78 , hal kedua jika ukuran dari apis github tidak akurat, saya tidak berpikir Anda akan menemukan sesuatu yang lebih akurat daripada apis github.Untuk merangkum solusi @larowlan, @VMTrooper, dan @vahid chakoshy:
sumber
Untuk repositori pribadi, Anda harus mendapatkan Token Akses Pribadi dari https://github.com/settings/tokens .
Kemudian gunakan perintah ikal berikut untuk mendapatkan detail (mengganti nilai untuk [token], [pemilik] dan [nama]):
Seperti yang disebutkan sebelumnya, ukuran mungkin dalam MB atau KB.
sumber