Có cách nào để xem kho lưu trữ Git lớn như thế nào trên GitHub trước khi bạn quyết định sao chép nó không?
Đây có vẻ như là một thống kê thực sự rõ ràng / cơ bản, nhưng tôi không thể tìm thấy cách nào để xem nó trên GitHub.
Có cách nào để xem kho lưu trữ Git lớn như thế nào trên GitHub trước khi bạn quyết định sao chép nó không?
Đây có vẻ như là một thống kê thực sự rõ ràng / cơ bản, nhưng tôi không thể tìm thấy cách nào để xem nó trên GitHub.
Câu trả lời:
Có một cách để truy cập thông tin này thông qua API GitHub .
GET /repos/:user/:repo
Khi lấy thông tin về một kho lưu trữ, một thuộc tính có tên size
được định giá bằng kích thước của toàn bộ kho lưu trữ (bao gồm tất cả lịch sử của nó), tính bằng kilobyte.
Chẳng hạn, kho lưu trữ Git có trọng lượng khoảng 124 MB. Các size
tài sản của JSON tải trọng trở có giá trị đến 124283
.
Kích thước thực sự được biểu thị bằng kilobyte dựa trên mức độ sử dụng đĩa của kho lưu trữ phía máy chủ. Tuy nhiên, để tránh lãng phí quá nhiều không gian với kho lưu trữ với mạng lớn, GitHub dựa vào Git Alternates . Trong cấu hình này, việc tính toán mức sử dụng đĩa đối với kho lưu trữ trống không chiếm tài khoản cho kho lưu trữ đối tượng được chia sẻ và do đó trả về giá trị "không đầy đủ" thông qua lệnh gọi API.
Thông tin này đã được hỗ trợ bởi GitHub.
$ curl -u "{:username}" https://api.github.com/repos/{:organization}/{:repository}
. Xem developer.github.com/v3/#authentication
Nếu bạn sở hữu kho lưu trữ, bạn có thể tìm thấy kích thước chính xác bằng cách mở Cài đặt tài khoản → Kho lưu trữ ( https://github.com/sinstall/reposeocate ) và kích thước kho lưu trữ được hiển thị bên cạnh chỉ định của nó.
Nếu bạn không sở hữu kho lưu trữ, bạn có thể phân nhánh nó và sau đó kiểm tra tại cùng một nơi.
Hơi khó tin: sử dụng download as a zip file
tùy chọn, đọc kích thước tệp được chỉ định và sau đó hủy bỏ.
Tôi không nhớ nếu tải xuống dưới dạng zip đã từng hoạt động, nhưng trong mọi trường hợp, làm như vậy bây giờ chỉ tải xuống chi nhánh hiện được chọn không có lịch sử.
Settings > Repositories
, nhưng thay vào đó tìm thấy kích thước repo bên dưới Account Settings > Repositories
trang chủ git của bạn. Tất nhiên, điều này chỉ hoạt động với repos mà bạn sở hữu (hoặc ngã ba).
Nếu bạn sử dụng trình duyệt Google Chrome, bạn có thể cài đặt tiện ích mở rộng Kích thước kho lưu trữ GitHub .
Repo tại đây: https://github.com/harshjv/github-repo-size
@larowlan mã mẫu tuyệt vời. Với GitHub API V3 mới, câu lệnh curl cần được cập nhật. Ngoài ra, đăng nhập không còn cần thiết:
curl https://api.github.com/repos/$2/$3 2> /dev/null | grep size | tr -dc '[:digit:]'
Ví dụ:
curl https://api.github.com/repos/dotnet/roslyn 2> /dev/null | grep size | tr -dc '[:digit:]'
trả về 931668
(tính bằng KB), gần bằng GB.
Để làm điều này với curl (sudo apt-get curl) và json beautiful (sudo gem install jsonpretty json):
curl -u "YOURGITHUBUSERNAME" http://github.com/api/v2/json/repos/show/OWNER/REPOSITORY |
jsonpretty
Thay thế YOUGITHUBUSERNAME bằng tên người dùng GitHub của bạn (xem hình).
Thay thế OWNER bằng tên người dùng Git của chủ sở hữu kho lưu trữ. Thay thế REPOSITORY bằng tên kho lưu trữ.
Hoặc như một tập lệnh Bash đẹp (dán tập tin này vào một tệp có tên gitrepo-thông tin):
#!/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
Sử dụng nó như vậy:
gitrepo-info larowlan pisi reel
Điều này sẽ cung cấp cho tôi thông tin về kho lưu trữ pisi / reel trên GitHub.
Bạn cần tuân theo API GitHub. Xem tài liệu ở đây để biết tất cả các chi tiết liên quan đến kho lưu trữ của bạn. Nó yêu cầu bạn thực hiện một yêu cầu NHẬN như:
GET / repos /: chủ sở hữu /: kho lưu trữ
Bạn cần thay thế hai điều:
Ví dụ: tên người dùng của tôi maheshmnj và tôi sở hữu một kho lưu trữ, flutter-ui- beautiful , vì vậy URL GET của tôi sẽ là:
https://api.github.com/repos/maheshmnj/flutter-ui-nice
Khi thực hiện một yêu cầu GET, bạn sẽ tràn ngập một số dữ liệu JSON và có thể trên dòng số 78, bạn sẽ thấy một khóa có tên là kích thước sẽ trả về kích thước của kho lưu trữ.
Mẹo: Khi làm việc với JSON, tôi khuyên bạn nên thêm một plugin định dạng dữ liệu JSON để giúp đọc JSON dễ dàng. Cài đặt plugin .
size
khóa trong phản hồi, không phải dòng 78. Chưa kể, các trình định dạng khác nhau sẽ có các ngắt dòng khác nhau ở những nơi khác nhau, để lại dữ liệu mong muốn ở một số dòng khác nhau.
probably
thấy nó trên dòng số 78, vì vậy điều đó cho thấy bạn sẽ thấy khóa kích thước ở đâu đó khoảng 78 , điều thứ hai nếu kích thước từ github apis không chính xác, tôi không nghĩ bạn sẽ tìm thấy thứ gì đó chính xác hơn github apis.
Để tóm tắt các giải pháp @larowlan, @VMTrooper và @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
Đối với kho lưu trữ riêng tư, bạn sẽ cần nhận Mã thông báo truy cập cá nhân từ https://github.com/sinstall/tokens .
Sau đó, sử dụng lệnh curl sau để lấy chi tiết (thay thế bằng các giá trị cho [mã thông báo], [chủ sở hữu] và [tên]):
curl -u git:[token] https://api.github.com/repos/[owner]/[name] 2> /dev/null | grep size
Như đã đề cập trước đó, kích thước có thể bằng MB hoặc KB.