Beeeat’s log

Beeeat’s log

プログラミングで出くわした知識やツール、日常生活、働き方その他色々なことをメモしていくブログ

GitHub CLI を使って今年の取り組みをふりかえってみる

この記事は マイナビ Advent Calendar 2020 の25日目の記事です.

昨日はH40831【JSの開発効率】爆速で快適に開発できる「debugger」を、多くの人が知らない説【上げませんか?】 でした.普通に知らなかったので,チェックしてキャッチアップしていきます!

さて,この時期になると今年のふりかえりをしたくなるものですが,その時にメインのリポジトリで今年一年で GitHub どんな活動をしたのかをふりかえる時に, ↓にあるような今まで私は GitHub の検索機能を使っていました.

bake0937.hatenablog.com

そんな中 GitHub が公式に GitHub CLI をリリースし,コマンドライン上で Issue からリリースまで、GitHub 上のワークフローのすべてが操作できるようになったようです.

github.blog

そのため,今回は GitHub CLI を実際に使ってみたことについてまとめようと思います.

使い方

こちらのページにダウンロード方法が書いています. Mac の場合は homebrew, Windows の場合は Chocolatey の他にもインストーラーがあるようです.

❯ brew install gh

cli.github.com

簡単にインストールできました.

❯ gh --version
gh version 1.4.0 (2020-12-15)
https://github.com/cli/cli/releases/latest

GitHub CLI を使うにはまずは GitHub へログインする必要があります. 下記のようにgh auth loginをするか,何かしらのコマンドを実行するとログインが求められるのでログインしましょう.

ログイン方法をブラウザか,token かを求められます.

試しにブラウザで試してみましょう.

❯ gh auth login
? What account do you want to log into? GitHub.com
- Logging into github.com
? How would you like to authenticate? Login with a web browser

! First copy your one-time code: ☓☓☓☓-☓☓☓☓
- Press Enter to open github.com in your browser...
✓ Authentication complete. Press Enter to continue...

PC で設定しているデフォルトのブラウザが起動するのでそこに発行された「one-time code」をコピペしログインを進めます.

こんな画面が表示されます.

f:id:bake0937:20201225231514p:plain

数秒待ってコマンドラインを確認してみると git の プロトコルSSHHTTPS を求められるので好きな方を選択します. 私は SSH を選択しました.

? Choose default git protocol SSH
- gh config set -h github.com git_protocol ssh
✓ Configured git protocol
✓ Logged in as bake0937

リポジトリの プルリクエスト のリストを取得してみる.

ログインもできたので早速やってみましょう,

過去に作ったリポジトリで試してみます. まずは ローカルにあるリポジトリに移動します.

その後にgh pr listを実行します.

するとこんな感じでデフォルトのステータスが open の プルリクエスト を取得することができます

❯ cd bake0937/idi
❯ gh pr list

Showing 1 of 1 open pull request in bake0937/idi

#100  userモデルのspecを追加  add-user_model-spec

Close も含めるには -s all が必要です.

すると,こんな感じで沢山でてきました. 件数のデフォルトは30です,

❯ gh pr list -s all

Showing 30 of 96 pull requests in bake0937/idi that match your search

#100  userモデルのspecを追加                                              add-user_model-spec
#99   RSpecを導入                                                         add-rspec
#98   Rails5 へアップデート                                               update-rails5
#97   Add scss_lint to gem                                                20170331_0134_add_gem_scss_lint
#96   Change README.rdoc to README.md                                     20170220_1123_change_readme
#95   Update README.rdoc                                                  20170220_1114_update_readme
#92   Fix to small font size                                              20170219_1755_fix_font_size_of_slide's_title
#91   20170219 1642 fix comment                                           20170219_1642_fix_comment
#90   New Relic APMの導入 Connect to #89 Close #89                        20161107_1051_add_new_relic_apm
#88   gem rb-readlineの追加 Connect to #87 Close #87                      20161107_1030_add_gem_rb-readline
#86   記事の確認画面のソースを削除                                        20161024_1026_remove_article_confirm
#85   refactor_articles_controller                                        20161014_2117_refactor_articles_controller
#84   fix n+1                                                             20161013_1221_fix_n+1
#83   add gem bullet                                                      20161013_1016_add_gem_bullet
#82   Refactoring articles_controller                                     201610130845_devlopment_refactoring_articles_controller
#81   Introduction of the automatic test                                  201610111225_development_setup_rspec
#80   201609131915 development add ogp logo                               201609131915_development_add_ogp_logo
#79   201609122322 development add ogp                                    201609122322_development_add_ogp
#78   20160907 development fix design of registration new                 20160907_development_fix_design_of_registration_new
#77   201608312353 development fix directory of template                  201608312353_development_fix_directory_of_template
#76   201608312139 development fix design of profiles show                201608312139_development_fix_design_of_profiles_show
#75   201608312046 development fix design of home index                   201608312046_development_fix_design_of_home_index
#74   201608311717 development fix registrations new                      201608311717_development_fix_registrations_new
#73   [fix] fix modifications so that it is displayed with a smartphone   201608311654_development_fix_sessions_new
#72   [fix] fix position of paging of profile show                        201608311641_development_fix_paging
#71   [fix] fix url of fontawesome                                        201608261226_development_fix_fontawesome
#70   [add] add footerFixed to assets/javascripts                         201608261205_development_add_footerFixed
#69   201608261156 development fix notation of sign in sign up sign out   201608261156_development_fix_notation_of_sign_in_sign_up_sign_out
#68   201608261143 development root change sessions new to registrati...  201608261143_development_root_change_sessions_new_to_registrati...
#67   201608261124 development fix design of sessions new                 201608261124_development_fix_design_of_sessions_new

使ってみての感想

シンプルで使いやすかったです!本当は「2020年1月1日から2020年12月25日で Author が自分」という条件で取得したかったのですが.option が現状無いようなので,今後に期待しようと思います!

今年のふりかえり

晦日までにゆっくり書こうと思います

まとめと所感

GitHub CLI を使ってみたことについてまとめてみました. GitHub CLI は Issue やプルリクエストの他にも様々なリポジトリの操作ができるのでもっと使いこなせられればブラウザを使わずにシュシュっと作業が効率的になりそうですね.

今年もあっという間の一年間でしたが,来年はもっと新しい技術と新しい仕組みにチャレンジできる一年になれるよう頑張っていこうと思います!!!