มีวิธีดูว่าที่เก็บ Git มีขนาดใหญ่บน GitHub ก่อนที่คุณจะตัดสินใจโคลนหรือไม่
ดูเหมือนว่าจะเป็นสถิติที่ชัดเจน / พื้นฐานจริงๆ แต่ฉันไม่สามารถหาวิธีดูได้ใน GitHub เลย
มีวิธีดูว่าที่เก็บ Git มีขนาดใหญ่บน GitHub ก่อนที่คุณจะตัดสินใจโคลนหรือไม่
ดูเหมือนว่าจะเป็นสถิติที่ชัดเจน / พื้นฐานจริงๆ แต่ฉันไม่สามารถหาวิธีดูได้ใน GitHub เลย
คำตอบ:
ไม่มีทางที่จะเข้าถึงข้อมูลนี้ผ่านการเป็นGitHub API
GET /repos/:user/:repo
เมื่อดึงข้อมูลเกี่ยวกับที่เก็บทรัพย์สินที่มีชื่อsize
จะมีค่ากับขนาดของพื้นที่เก็บข้อมูลทั้งหมด (รวมถึงประวัติทั้งหมดของมัน) ในหน่วยกิโลไบต์
ตัวอย่างเช่นที่เก็บ Git มีน้ำหนักประมาณ 124 MB size
ทรัพย์สินของกลับ JSON 124283
น้ำหนักบรรทุกที่มีมูลค่าการ
ขนาดจะแสดงเป็นกิโลไบต์ตามการใช้งานดิสก์ของที่เก็บข้อมูลฝั่งเซิร์ฟเวอร์ อย่างไรก็ตามในการสั่งซื้อเพื่อหลีกเลี่ยงการสูญเสียพื้นที่มากเกินไปกับที่เก็บที่มีเครือข่ายขนาดใหญ่ GitHub อาศัยGit สลับ ในการกำหนดค่านี้การคำนวณการใช้ดิสก์กับที่เก็บข้อมูลเปลือยไม่ได้คำนึงถึงที่เก็บวัตถุที่ใช้ร่วมกันและส่งกลับค่า "ไม่สมบูรณ์" ผ่านการเรียก API
ข้อมูลนี้ได้รับการสนับสนุนจาก GitHub
$ curl -u "{:username}" https://api.github.com/repos/{:organization}/{:repository}
ลอง @nroose ดูdeveloper.github.com/v3/#authentication
หากคุณเป็นเจ้าของพื้นที่เก็บข้อมูลคุณสามารถค้นหาขนาดที่แน่นอนได้โดยเปิดการตั้งค่าบัญชีของคุณ→ที่เก็บ ( https://github.com/settings/repositories ) และขนาดพื้นที่เก็บข้อมูลจะปรากฏถัดจากชื่อที่ตั้ง
หากคุณไม่ได้เป็นเจ้าของพื้นที่เก็บข้อมูลคุณสามารถแยกมันและตรวจสอบในสถานที่เดียวกัน
ค่อนข้างแฮ็ค: ใช้download as a zip file
ตัวเลือกอ่านขนาดไฟล์ที่ระบุและยกเลิก
ฉันจำไม่ได้ว่าการดาวน์โหลดเป็น zip ใช้งานได้ แต่ไม่ว่าในกรณีใดก็ตามให้ทำตอนนี้ดาวน์โหลดเฉพาะสาขาที่เลือกในปัจจุบันที่ไม่มีประวัติ
Settings > Repositories
แต่พบขนาด repo ที่อยู่Account Settings > Repositories
นอกโฮมเพจของคอมไพล์ของคุณ แน่นอนว่าใช้ได้เฉพาะกับ repos ที่คุณเป็นเจ้าของ (หรือทางแยก)
หากคุณใช้เบราว์เซอร์ Google Chrome คุณสามารถติดตั้งส่วนขยายGitHub Repository Size
Repo ที่นี่: https://github.com/harshjv/github-repo-size
@larowlan รหัสตัวอย่างที่ดี ด้วย GitHub API V3 ใหม่คำสั่ง curl จำเป็นต้องได้รับการอัปเดต นอกจากนี้การเข้าสู่ระบบไม่จำเป็นต้องใช้อีกต่อไป:
curl https://api.github.com/repos/$2/$3 2> /dev/null | grep size | tr -dc '[:digit:]'
ตัวอย่างเช่น:
curl https://api.github.com/repos/dotnet/roslyn 2> /dev/null | grep size | tr -dc '[:digit:]'
ส่งคืน931668
(เป็น KB) ซึ่งเกือบเป็น GB
ในการทำเช่นนี้ด้วย curl (sudo apt-get curl) และ json pretty (sudo gem ติดตั้ง jsonpretty json):
curl -u "YOURGITHUBUSERNAME" http://github.com/api/v2/json/repos/show/OWNER/REPOSITORY |
jsonpretty
แทนที่ YOURGITHUBUSERNAME ด้วยชื่อผู้ใช้ GitHub ของคุณ (ไปที่รูป)
แทนที่ OWNER ด้วยชื่อผู้ใช้ Git ของเจ้าของที่เก็บ แทนที่ REPOSITORY ด้วยชื่อที่เก็บ
หรือเป็นสคริปต์ Bash ที่ดี (วางในไฟล์ชื่อ gitrepo-info):
#!/bin/bash
if [ $# -ne 3 ]
then
echo "Usage: gitrepo-info <username> <owner> <repo>"
exit 65
fi
curl -u "$1" http://github.com/api/v2/json/repos/show/$2/$3|jsonpretty
ใช้มันอย่างนั้น:
gitrepo-info larowlan pisi reel
นี่จะให้ข้อมูลฉันเกี่ยวกับพื้นที่เก็บข้อมูลpisi / reelบน GitHub
คุณต้องทำตาม GitHub API ดูเอกสารประกอบที่นี่สำหรับรายละเอียดทั้งหมดเกี่ยวกับที่เก็บของคุณ มันต้องการให้คุณส่งคำขอGETดังนี้:
GET / repos /: owner /: repository
คุณต้องแทนที่สองสิ่ง:
เช่นชื่อผู้ใช้ของฉันmaheshmnjและฉันเป็นเจ้าของที่เก็บflutter-ui-niceดังนั้น URL GET ของฉันจะเป็น:
https://api.github.com/repos/maheshmnj/flutter-ui-nice
เมื่อทำการร้องขอ GET คุณจะถูกน้ำท่วมด้วยข้อมูล JSON บางส่วนและอาจจะอยู่ที่บรรทัดที่ 78 คุณควรเห็นคีย์ที่มีชื่อขนาดซึ่งจะส่งคืนขนาดของพื้นที่เก็บข้อมูล
เคล็ดลับ: เมื่อทำงานกับ JSON ฉันขอแนะนำให้คุณเพิ่มปลั๊กอินที่จัดรูปแบบข้อมูล JSON เพื่อให้การอ่าน JSON ง่ายขึ้น ติดตั้งปลั๊กอิน
size
คีย์ในการตอบกลับไม่ใช่บรรทัด 78 ไม่ต้องพูดถึงตัวจัดรูปแบบที่แตกต่างกันจะมีตัวแบ่งบรรทัดที่แตกต่างกันในสถานที่ที่แตกต่างกันออกจากข้อมูลที่ต้องการที่หมายเลขบรรทัดอื่น
probably
เห็นมันในบรรทัดที่ 78 ดังนั้นนั่นบ่งบอกว่าคุณควรเห็นกุญแจขนาดประมาณ 78 อย่างที่สองถ้าขนาดของ gitub apis ไม่ถูกต้องฉันไม่คิดว่าคุณจะพบอะไรที่แม่นยำกว่า apit github
หากต้องการสรุป @larowlan, @VMTrooper และ @vahid chakoshy โซลูชัน:
#!/usr/bin/env bash
if [ "$#" -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 1
fi
สำหรับพื้นที่เก็บข้อมูลส่วนตัวคุณจะต้องได้รับโทเค็นการเข้าถึงส่วนบุคคลจากhttps://github.com/settings/tokens https://github.com/settings/tokens
จากนั้นใช้คำสั่ง curl ต่อไปนี้เพื่อรับรายละเอียด (แทนค่าสำหรับ [โทเค็น], [เจ้าของ] และ [ชื่อ]):
curl -u git:[token] https://api.github.com/repos/[owner]/[name] 2> /dev/null | grep size
ตามที่ระบุไว้ก่อนหน้านี้ขนาดอาจเป็น MB หรือ KB