IT

복제하기 전에 github 저장소의 크기를 보시겠습니까?

lottoking 2020. 3. 20. 08:28
반응형

복제하기 전에 github 저장소의 크기를 보시겠습니까?


github에 git repo가 ​​얼마나 큰지 볼 수있는 방법이 있습니까? 이것은 명백한 기본 통계처럼 보이지만 github에서 전혀 보는 방법을 찾을 수 없습니다.


GitHub API 를 통해이 정보에 액세스 할 수있는 방법이 있습니다 .

저장소에 대한 정보를 검색 할 때 이름 size지정된 특성 은 전체 저장소 (모든 히스토리 포함)의 크기 (KB)로 평가됩니다.

예를 들어 Git 리포지토리의 무게는 약 124MB입니다. size반환 된 JSON 페이로드 속성 값은 124283입니다.

최신 정보

크기는 실제로 서버 측 베어 저장소의 디스크 사용량에 따라 킬로바이트로 표시됩니다. 그러나 네트워크가 큰 리포지토리로 공간을 너무 많이 낭비하지 않도록 GitHub는 Git Alternates에 의존합니다 . 이 구성에서 Bare 저장소에 대한 디스크 사용량 계산은 공유 오브젝트 저장소를 고려하지 않으므로 API 호출을 통해 "불완전한"값을 리턴합니다.

이 정보는 GitHub 지원에 의해 제공되었습니다.


저장소를 소유 한 경우 Account Settings > Repositories( https://github.com/settings/repositories ) 를 열어 정확한 크기를 찾을 수 있으며 해당 저장소 옆에 저장소 크기가 표시됩니다.

저장소를 소유하지 않은 경우 저장소를 포크 한 다음 같은 위치에서 확인할 수 있습니다.

다소 해킹 : download as a zip file옵션을 사용하여 표시된 파일 크기를 읽은 다음 취소하십시오.

zip으로 다운로드 한 적이 있는지 기억이 나지 않지만 지금 은 기록이없는 현재 선택된 지점 만 다운로드합니다.


Chrome 브라우저를 사용하는 경우 GitHub 리포지토리 크기 확장을 설치할 수 있습니다 .

여기에 이미지 설명을 입력하십시오

여기에 레포 : 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 (sudo apt-get curl) 및 json pretty (sudo gem install jsonpretty json) 로이 작업을 수행하려면

curl -u "YOURGITHUBUSERNAME" http://github.com/api/v2/json/repos/show/OWNER/REPO |
  jsonpretty

YOURGITHUBUSERNAME을 git hub username으로 바꿉니다 (go figure). OWNER를 repo 소유자의 git username으로 바꾸십시오 REPO를 repo 이름으로 바꾸십시오.

또는 멋진 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

이것은 github의 pisi / reel repo에 대한 정보를 제공합니다.


@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

당신은 github API를 따라야합니다. 당신의 reposiory에 관한 자세한 내용은 여기 의 문서를 참조하십시오.

GET / repos / : 소유자 / : repo

당신은 두 가지를 교체해야합니다

  1. : owner-저장소를 소유 한 사람의 사용자 이름
  2. : repo- 저장소 이름

예를 들어, 내 사용자 이름 maheshmnj , 나는 저장소 flutter-ui-nice를 소유 하므로 내 get url은

https://api.github.com/repos/maheshmnj/flutter-ui-nice

get 요청을 할 때 일부 json 데이터가 넘치며 78 번 라인에는 저장소 크기를 반환하는 size라는 키가 표시됩니다.

팁 : Json으로 작업 할 때 json을 쉽게 읽을 수 있도록 Json 데이터를 형식화하는 플러그인을 추가하는 것이 좋습니다. 플러그인 설치

참고 URL : https://stackoverflow.com/questions/8646517/see-the-size-of-a-github-repo-before-cloning-it

반응형