“GitHub CLI”でOrganization内のリポジトリを一覧表示する方法

2022-08-05Bash,GitHub

はじめに

GitHub CLI が便利で愛用しています。
GitHub CLI をインストールすると使えるようになる gh コマンドと、 別ツールである ghq コマンドを組み合わせるとコマンドラインライフ(?)がとても快適になります。

さて、GitHub にて新しい組織(Organizations)に所属したとき、この組織が所有するリポジトリの一覧を取得したかったのですが、 ほんの少しハマったのでやり方を紹介します。

検証環境

$ uname -moi
arm64 MacBookPro18,3 Darwin

$ bash -version | head -n 1
GNU bash, バージョン 5.1.16(1)-release (aarch64-apple-darwin21.1.0)

$ gh --version
gh version 2.5.2 (2022-03-01)
https://github.com/cli/cli/releases/tag/v2.5.2

gh コマンドで普通にリポジトリを一覧

gh コマンドで普通にリポジトリを一覧出力してみましょう。

$ gh repo list

Showing 30 of 200 repositories in @genzouw

genzouw/docker-minecraft-server          Docker image that provides a Minecraft Server that will automatical...  public, fork  1d
genzouw/bin                                                                                                      private       1d
genzouw/setup_scripts                                                                                            private       3d
genzouw/myconfig                                                                                                 private       4d
genzouw/kanji                                                                                                    private       4d
genzouw/golly                                                                                                    private       4d
genzouw/haldata-apollo-client                                                                                    private       4d
genzouw/backend                                                                                                  private       4d
genzouw/hyakuninissyu                                                                                            private       4d
genzouw/aws-cognito-example-custom-page                                                                          public        5d
genzouw/ubuntu-sandbox                   Dockerfile for Ubuntu                                                   public        6d
...

自分の所有するリポジトリが一覧表示されます。
200 リポジトリも所有しているんですね。びっくりしました。 掃除しないと。

さて、オプションを付けなければ デフォルトで 30 リポジトリしか表示されません

gh コマンドでデフォルト上限の 30 件以上のリポジトリを出力

---limit というオプションを付与すれば、30 件以上出力されます。
試しに出力結果を wc -l コマンドにパイプで渡して、件数を確認してみましょう。

# --limit オプション無しで出力した結果の件数を確認
$ gh repo list | wc -l
$ 30

# --limit オプション有りで出力した結果の件数を確認 (100件)
$ gh repo list --limit 100 | wc -l
$ 100

# --limit オプション有りで出力した結果の件数を確認 (200件)
$ gh repo list --limit 200 | wc -l
$ 200

確かに表示される件数が変わっているようです。

本題:Organization 所有のリポジトリを出力する

さて本題です。
今まで出力されてたリポジトリ一覧は自分で所有しているリポジトリ(僕の場合は genzouw ですね)しか出力されていませんでした。

自分の所属する Organizations が所有するリポジトリを一覧表示したいは、 引数として Organizations 名を指定します。

$ gh repo list ORG_NAME

Showing 30 of 97 repositories in @ORG_NAME

ORG_NAME/aaaaaaaaaaaa
ORG_NAME/bbbbbbbbbbbbbbbb
ORG_NAME/ccccccccccccc
ORG_NAME/dddddddddddddddddd
ORG_NAME/eeeeeeeeeeee
ORG_NAME/fffffff
ORG_NAME/ggggggggggggggggggg
ORG_NAME/hhhhhhhhhhhhhhhhh
...

ここでは Organizations 名を伏せ字 ORG_NAME にしています。ご自分が所属する Organizations に適切に書き換えてください 。

ひとこと

実はヘルプを見たら普通に書いていました。

$ gh repo list --help
List repositories owned by user or organization

For more information about output formatting flags, see `gh help formatting` .

USAGE
  gh repo list [<owner>] [flags]

2022-08-05Bash,GitHub