3
2

More than 1 year has passed since last update.

コマンドでGitHubリポジトリ一覧を取得する

Last updated at Posted at 2021-09-29

リポジトリ一覧取得のコマンドがGitHub CLIに追加されていることに気づき、便利そうと思ったので使い方を共有しておきます。
GitHub CLIをご存知ない方は、以下の記事が参考になると思います。

GitHub CLIのインストールやアップデート方法の詳細は以下参照。
https://github.com/cli/cli#installation

また、GitHub CLIは先月末(2021/8末)にメジャーアップしてv2.0.0になっているので、他にも探してみると便利機能が追加されているかもしれません。

リポジトリ一覧取得の方法

$ gh repo list

以下のように、リポジトリ名、説明、private/public/fork、最終更新日時、が一覧されます。
デフォルトでは認証しているアカウントのリポジトリ一覧が30個まで表示されます。
リポジトリ名がわかればgh repo clone <repository>でコマンドだけでcloneできますね。

Showing 30 of 51 repositories in @inayuky

inayuky/ruby-sampler                    Ruby sample programs                                                   private       2m
inayuky/js-sampler                      JavaScript sample programs                                             private       29m
inayuky/terraform-qiita-search          Terraform template for QiitaSearch                                     public        23h
inayuky/circleci-sampler-awscli-001                                                                            private       5d
inayuky/webstorm-react-work                                                                                    private       7d
inayuky/sample_app                                                                                             private       7d
inayuky/terraform-fess-sample           Terraform template to start Fess on EC2                                public        12d
inayuky/toy-app                                                                                                private       19d
inayuky/hello_app                                                                                              private       21d
inayuky/terraform-sampler               Terraform sample programs                                              private       Aug  8, 2021
inayuky/docker-fess                     Docker files for Fess                                                  public, fork  May 29, 2021
・
・
・

引数を指定すれば、他アカウントのpublicリポジトリ一覧も取得できます。

$ gh repo list increments

Showing 30 of 69 repositories in @increments

increments/graphql-kaminari_connection           Kaminari based GraphQL pagination                             public                  1d
increments/textcomplete                          Autocomplete for HTMLTextAreaElement and more.                public, fork            10d
increments/qiita-markdown                        Qiita-specified markdown processor.                           public                  15d
increments/greenmat                              The Markdown parser for Qiita, based on Redcarpet.            public, fork            15d
increments/qiitan-rb                             A template to create and deploy your ruboty on slack.         public, fork            May 17, 2021
increments/increments-schedule                   Everything about Increments' schedule                         public                  May 17, 2021
increments/chef-td-agent                         Chef Cookbook for td-agent (Treasure Agent or Fluentd)        public, fork            Mar 23, 2021
increments/circleci-coverage_reporter                                                                          public                  Oct  8, 2020
increments/js_rails_routes                       Generate a ES6 module that contains Rails routes              public                  Mar  9, 2020
increments/mastodon                              Mastodon for Qiita users                                      public, fork            Mar  4, 2020
・
・
・

オプション

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

FLAGS
      --archived          Show only archived repositories
      --fork              Show only forks
  -q, --jq expression     Filter JSON output using a jq expression
      --json fields       Output JSON with the specified fields
  -l, --language string   Filter by primary coding language
  -L, --limit int         Maximum number of repositories to list (default 30)
      --no-archived       Omit archived repositories
      --private           Show only private repositories
      --public            Show only public repositories
      --source            Show only non-forks
  -t, --template string   Format JSON output using a Go template
      --topic string      Filter by topic

よく使いそうなオプションの使用例を列挙しておきます。

publicリポジトリのみ

$ gh repo list --public

privateリポジトリのみ

$ gh repo list --private

最大表示数変更(デフォルトは30個まで表示)

$ gh repo list -L 1000

リポジトリ名のみをJSONで出力する

$ gh repo list --json name

リポジトリ名のみを出力する

$ gh repo list --json name --jq '.[].name'

--jqオプションがあるので、別途jqコマンドは不要なようです。
なお、--jqは--jsonとの併用が必須。

リポジトリ名のみを名前順にソートして出力する

$ gh repo list --json name --jq '.[].name' | sort

デフォルトだと最終更新日順に並ぶようなので、アルファベット順に並べる。

参考

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2