GitHub CLIでgistを作成する

はじめに

この記事は2020年ふりかえりアドベントカレンダー 6日目です。昨日の記事は Rubyにはオブジェクトを汚染する仕組みがあった - いまブログ です。

GitHub CLIとは

GitHub 公式が提供している CLI ツールです。コマンドラインから Pull Request や issue を管理したり、 gist を作成できて便利です。

cli/cli: GitHub’s official command line tool

GitHub CLI では gist の作成、確認、編集、削除ができます。つまり好きなエディタで gist に上げたファイルを操作できます!

とてもシンプルに gist 管理ができて便利だったので使い方を紹介します。

GitHub CLI のインストール

macOS の場合は homebrew でインストールできます。

$ brew install gh

LinuxWindows などの環境のインストール方法は README に書いてあります。 cli/cli: GitHub’s official command line tool

GitHub CLI のコマンドは gh で呼び出せます。

インストール後、 適当な gh コマンドを打って GitHub アカウントにログインしてください。

$ gh issue list 

gist を作成

コマンド

$ gh gist create [<filename>... | -] [flags]

-p オプションを指定しない場合 secret gist が作成されます。

オプション

-d, --desc      # gist の詳細を記入
-p, --public   # gist を public で作成
-w, --web       # 作成した gist をブラウザで表示

サンプルコード

$ gh gist create test.txt -w
- Creating gist test.txt
✓ Created gist test.txt
Opening gist.github.com/afe55d913bad0dc92f1c41c0f7392f97 in your browser.

$ gh gist create test.txt -d "説明" -p -w
- Creating gist test.txt
✓ Created gist test.txt
Opening gist.github.com/061e2ce872d3e331d1e2f054bd478363 in your browser.

gist の一覧を確認

gist id、説明文、ファイル数、公開状態、最終更新時間を確認できます。

コマンド

$ gh gist list [flags]

サンプルコード

$ gh gist list                           
061e2ce872d3e331d1e2f054bd478363  説明            1 file  public  less than a minute ago
afe55d913bad0dc92f1c41c0f7392f97  test.txt        1 file  secret  about 3 minutes ago

gist を確認

cat コマンドのように gist を表示できます。

コマンド

$ gh gist view {<gist id> | <gist url>} [flags]

サンプルコード

$ gh gist view 061e2ce872d3e331d1e2f054bd478363 
説明
GitHub CLI でアップロードしたサンプルファイルです。

markdown の場合少し色がついた状態で表示されます。

gist を編集

エディタで gist を開いて編集できます。

コマンド

$ gh gist edit {<gist ID> | <gist URL>} [flags]

エディタが開いて gist を編集できます。使うエディタは環境変数 EDITOR を参照しています。

サンプルコード

$ gh gist edit 67353016314581ed675e40e7f89ea422 

$ EDITOR="nano" gh gist edit 67353016314581ed675e40e7f89ea422 

私の環境では、EDITOR="code" (VSCode) を指定するとうまく編集できませんでした。

gist を削除

gist を削除します。特に確認メッセージなどは出てこないので注意してください。

コマンド

$ gh gist delete {<gist ID> | <gist URL>} [flags]

サンプルコード

$ gh gist delete 67353016314581ed675e40e7f89ea422    

参考資料