クローンを作成せずに、GitHubでホストされているプロジェクトの合計リポジトリサイズを表示したい。時々私はこれを行います:

  1. いくつかのGitHubリポジトリのクローン作成を開始します

    オブジェクトの受信:45%(218 / 476)、5.50 MiB | 27 KiB / s

    すでに5MBを消費していますか?一時停止…

    ^Z 
  2. 通常のインターネット接続を使用してサーバー上のリポジトリのクローンを作成します サイズを確認してください。

  3. ローカルクローン作成を続行(または中止)します。

リポジトリのサイズを事前に確認するにはどうすればよいですか?検索ではリポジトリのサイズが表示されますが、他の場所には表示されません。

コメント

回答

Github APIの使用:

$ echo https://github.com/hlamer/enki.git | perl -ne "print $1 if m!([^/]+/[^/]+?)(?:\.git)?$!" | xargs -i curl -s -k https://api.github.com/repos/"{}" | grep size "size": 284, 

コメント

  • Macでは、'はありません-iパラメータxargsなので、':$ echo https://github.com/hlamer/enki.git | perl -ne 'print $1 if m!([^/]+/[^/]+?)(?:\.git)?$!' | xargs -I{} curl -s -k https://api.github.com/repos/'{}' | grep size
  • サイズは…キロバイトですか?

回答

Firefoxでは、 GitHubリポジトリサイズアドオンを使用できます。

github情報バー

コメント

  • なぜ反対票を投じるのですか?拡張機能またはユーザースクリプトが機能しない、またはマルウェアが含まれていますか?
  • いいえ、すべて正常に機能します…

回答

Google Chromeブラウザを使用して、この拡張機能

をインストールします

ホームページにリポジトリサイズを追加します:

GitHubレポサイズ拡張のスクリーンショット

回答

curl \ -H "Accept: application/vnd.github.v3+json" \ -s https://api.github.com/repos/torvalds/linux | \ jq ".size" | \ numfmt --to=iec --from-unit=1024 

説明:

  1. curlを使用して、 github api からリポジトリ情報を取得します

次のようなjson応答を受け取ります:

{ "id": 2325298, "node_id": "MDEwOlJlcG9zaXRvcnkyMzI1Mjk4", "name": "linux", "full_name": "torvalds/linux", "private": false, ... "size": 3018913, <<<This is what we need "stargazers_count": 99224, "watchers_count": 99224, ... } 
  1. json応答を jqパーサーにパイプし、必要な属性と値のペアを見つけます。

    .はjson本体のルートを示し、sizeは必須の属性ですルートボディからのibute

出力(kB単位のサイズ):

3018913 
  1. 次に、出力を numfmt
$ man numfmt --to=[UNIT] iec 1K = 1024, 1M = 1048576, ... --from-unit=N specify the input unit size (instead of the default 1) (it basically tells that the input is in kB(1024B) insted of B 

にパイプします。出力:

2.9G 

プライベートリポジトリの場合、トークンをヘッダーとして渡します

-H "Authorization: token GITHUB_TOKEN" 

replaceプライベートリポジトリにアクセスできる githubトークンを持つGITHUB_TOKEN

https://command-not-found.com/jq

https://command-not-found.com/numfmt

コメント

  • このコマンドの機能を説明できますか?この状況でどのように役立ちますか?ありがとう
  • curlを使用してリポジトリのメタデータを取得し、" size "<を抽出します。 jqを使用してそこから/ div>フィールドを作成し、numfmtを使用して生のバイトを人間が読めるファイルサイズに変換します。

回答

これは、ブラウザコンソールを使用して実行することで実現できます

fetch("https://api.github.com/repos/[USERNAME]/[REPO]") .then(v => v.json()).then((function(v){ console.log(v["size"] + "KB") }) ) 

実際の例を考えてみましょう。

Firefoxを使用してこのリポジトリのサイズを見つけたいと仮定します。

Ctrl + Shift + Kでコンソールを開きます。

次に次のコードを貼り付けます

fetch("https://api.github.com/repos/goncaloperes/TimeSeries") .then(v => v.json()).then((function(v){ console.log(v["size"] + "KB") }) ) 

Enterキーを押すと、次の画像に示すようにリポジトリのサイズが表示されます。

ここに画像の説明を入力してください

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です