GitHub Copilotのコマンドラインツールの紹介
💻 GitHub Copilotのコマンドラインツールの紹介
🌟 Introduction: はじめに
こんにちは、皆さん!GitHub CopilotのCLI(コマンドラインインターフェース)ツールが公開ベータ版となりました。そのインストールから使ってみた感想までをこの記事でご紹介していきます。詳細は公式ページをご覧ください。
公式ページから一部引用しますと:
"GitHub Copilot in the CLI brings GitHub Copilot right to your terminal, where you can ask it to do things like explain how a command works or suggest a command for a task you want to perform."
これを日本語に訳すと次のようになります(意訳あり):
"GitHub Copilotのコマンドラインツールは、GitHub Copilotをターミナルで操作できます。コマンドラインツールでは、質問したコマンドがどのように動作するかを説明したり、行いたいタスクに対するコマンドを提案したりすることが可能です。"
つまり、GitHub CopilotのCLIツールは、ターミナル上で直接適切なコマンドを提案してくれる非常に便利な機能を提供しています。また、ターミナル内でコマンドの質問をすることも可能です!私が実際に使ってみた感じでも、その有用性を強く感じました。以下で具体的な使用感について詳しく紹介します。
📝 QuickStart: クイックスタート
詳細は公式のクイックスタートをご覧ください。
- GitHub CLI を macOS、Windows、または Linux にインストールします。詳細については、「GitHub CLIリポジトリでのインストール」を参照してください。
- ターミナルから次のコマンドを実行して、GitHub で認証します。
gh auth login - 画面上の指示に従い認証を完了する。
- Github Copilot in the CLIを有効化する。詳細については、GitHub Copilot in the CLIの有効化
- CLIにCopilotをインストールする。
gh extension install github/gh-copilot
画像付き解説
まずは、リポジトリのコマンド(winget install --id GitHub.cli)を使ってインストール

※私の場合は、Windows環境なので、winget install --id GitHub.cliコマンドでインストールしました!
もちろん入れたばっかりなので、アップデートはなし。(winget upgrade --id GitHub.cli)

CLIツール系は、コマンドプロンプトを開きなおさないと反映されないので、一度閉じて開きなおす。

gh auth loginコマンドを実行して、画面上の指示に従います。

※Git操作の優先プロトコルとしてHTTPSを選択し、GitHub認証情報を使用してGitに対して認証するかどうかを尋ねるプロンプトに「はい」と答えると、GitHub CLIはGit認証情報を自動的に保存します。これにより、別個の資格情報マネージャーを設定したりSSHを使用したりする必要がなく、git push、git pullなどを使用できるため便利です。
GitHub.com の右上隅でプロフィール写真を選択し、Your organizationsをクリックします。

組織の横にある[設定]をクリックします。

サイドバーの [コード、計画、および自動化] セクションで、[コパイロット]をクリックし、[ポリシーと機能]をクリックします。

「GitHub Copilot in the CLI」の右側でドロップダウン メニューを選択し、 [有効]をクリックします。

gh extension install github/gh-copilotを実行して、GitHub CopilotをCLIの拡張機能としてインストールします。

📚 CLIでのCopilotの利用法
GitHub Copilotをghコマンドと共に使うには、gh copilot <SUBCOMMAND>と入力します。さらに詳しいヘルプが必要な場合は、全体的なヘルプを得るためにgh copilot --helpを、特定のサブコマンドについてヘルプを得るためにgh copilot <SUBCOMMAND> --helpを使用できます。
gh copilot --help

なんかコマンド指定して下さいって言われました。
gh copilot explain --help

例を使ってコマンドのhelpを表示してくれてますね!
コマンドの説明をしてもらう
CLI上のCopilotにコマンドの説明を要求するには次のように実行します:
gh copilot explain

または、説明が欲しいコマンドを直接プロンプトに追加します:
gh copilot explain "sudo apt-get"

CLIのCopilotは、コマンドの目的とそれがどのように動作するかを簡単な言葉で説明します。これにより、コマンドの文書を通じて理解する必要が無く、コマンドが何を入力として受け取り、何を出力として生成するのか、具体的な例と共に情報が提供されます。
先ほどhelpで表示されたものもexplainしてもらいましょう。
gh copilot explain 'git log --oneline --graph --decorate --all'

まだベータ版??可能性しか感じませんね...。
コマンドの提案を要求する
CLIのCopilotにコマンドの提案を要求するには次のように実行します:
gh copilot suggest

このコマンドで、必要なコマンドを得るための対話がはじまります。CLIのCopilotは、より良い提案を得るために、求めているコマンドの種類(一般的なもの、git、またはgh)を指定することができます。
コマンドの種類の指定方法
? What kind of command can I help you with? [Use arrows to move, type to filter]
> generic shell command
gh command
git command
generic shell command
一般的なシェルコマンドを提案するには、「generic shell command」オプションを選択します。
gh command
GitHub CLIのコマンドを提案するには、「gh command」オプションを選択します。
git command
Gitのコマンドを提案するには、「git command」オプションを選択します。
すでに必要なコマンドがわかっている場合は、プロンプトにそれを含めることもできます。例えば、Gitをインストールしたい場合、次のようにCLIのCopilotにコマンドの提案を要求できます:
gh copilot suggest "Install git"

コマンドのオプション設定
? Select an option [Use arrows to move, type to filter]
> Copy command to clipboard
Explain command
Revise command
Rate response
Exit
Copy command to clipboard
タスクに最適なコマンドを生成したら、「Copy to clipboard」オプションを選択することで、それをクリップボードに簡単にコピーし、必要な場所で実行することができます。
Explain command
コマンドがどのように動作するかを理解したい場合は、「Explain command」オプションを選択することで、コマンドの説明を得ることができます。
Revise command
結果が期待通りでない場合は、返されたコマンドが期待に合うまで質問を修正し続けることができます。これは、「Revise command」オプションを選択することで行えます。
Rate response
CLIのCopilotは、提案されたコマンドが役に立ったかどうかを尋ねるために、提案の後に「Rate response」オプションを提供します。このフィードバックは、CLIのCopilotの改善に役立ちます。
Exit
CLIのCopilotの対話を終了するには、「Exit」オプションを選択します。
📝 CLIでのCopilotを使ってsvelteの環境を作成してみる
最近興味がある、Svelteとやらの環境を作成してみます。まずは、gh copilot suggestコマンドを実行します。
gh copilot suggest "install svelte"

んで、この後どうすればいいんだ?と思ったら、gh copilot explainコマンドを実行します。
gh copilot explain "npm install svelte"

んん?よくわからないけど、プロジェクトをスタートするところまでのコマンドを出して欲しい。
gh copilot suggest "start svelte project"

おおお、なんかたくさんコマンド出たぞ。これをコピペして実行してみる。
npx degit sveltejs/template svelte-app
cd svelte-app
npm install
npm run dev

お、できたかな?localの8080ポートは使用されているので、代わりに50113で起動したみたい。

できたぁあああ!!!!
念のためExplain commandも見てみる。
? Select an option
> Explain command

英語でいろいろ説明してくれる。これは便利っすね...
📝 Conclusion: まとめ
今回は、GitHub CopilotのCLIツールの紹介をしました。GitHub CopilotのCLIツールは、ターミナル上で直接適切なコマンドを提案してくれる非常に便利な機能を提供しています。また、ターミナル内でコマンドの質問をすることも可能です!私が実際にSvelteの環境を作った時も、その有用性を強く感じました。ぜひ、皆さんも使ってみてください!
最後まで読んでくださりありがとうございました!
ご意見ご感想などありましたら、コメントお願いします!
📚 References: 参考文献
Discussion