3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

記事投稿キャンペーン 「AI、機械学習」

GitHub Copilotのコマンドラインツールの紹介

Last updated at Posted at 2023-11-09

💻 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ツールは、ターミナル上で直接適切なコマンドを提案してくれる非常に便利な機能を提供しています。また、ターミナル内でコマンドの質問をすることも可能です!私が実際に使ってみた感じでも、その有用性を強く感じました。以下で具体的な使用感について詳しく紹介します。

📖 Table of Contents: 目次

📝 QuickStart: クイックスタート

詳細は公式のクイックスタートをご覧ください。

  1. GitHub CLI を macOS、Windows、または Linux にインストールします。詳細については、「GitHub CLIリポジトリでのインストール」を参照してください。
  2. ターミナルから次のコマンドを実行して、GitHub で認証します。gh auth login
  3. 画面上の指示に従い認証を完了する。
  4. Github Copilot in the CLIを有効化する。詳細については、GitHub Copilot in the CLIの有効化
  5. CLIにCopilotをインストールする。gh extension install github/gh-copilot

GitHub CLIを使うには、GitHub Copilot Businessの登録が必要です。GitHub Copilot Businessの詳細はこちらをご覧ください。機能制限はありますが、無料で使用することができます。
登録方法について書かれたZennの記事もありますので、こちらをご覧ください。(登録は自己責任でお願いします)

画像付き解説

まずは、リポジトリのコマンド(winget install --id GitHub.cli)を使ってインストール
スクリーンショット 2023-11-09 105425.png

私の場合は、Windows環境なので、winget install --id GitHub.cliコマンドでインストールしました!

もちろん入れたばっかりなので、アップデートはなし。(winget upgrade --id GitHub.cli)
スクリーンショット 2023-11-09 105512.png

CLIツール系は、コマンドプロンプトを開きなおさないと反映されないので、一度閉じて開きなおす。
スクリーンショット 2023-11-09 105543.png

gh auth loginコマンドを実行して、画面上の指示に従います。
スクリーンショット 2023-11-09 110222.png

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

GitHub.com の右上隅でプロフィール写真を選択し、Your organizationsをクリックします。
スクリーンショット 2023-11-09 111753.png

組織の横にある[設定]をクリックします。
スクリーンショット 2023-11-09 111901.png

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

「GitHub Copilot in the CLI」の右側でドロップダウン メニューを選択し、 [有効]をクリックします。
スクリーンショット 2023-11-09 112016.png

gh extension install github/gh-copilotを実行して、GitHub CopilotをCLIの拡張機能としてインストールします。
スクリーンショット 2023-11-09 113414.png

📚 CLIでのCopilotの利用法

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

gh copilot --help

スクリーンショット 2023-11-09 114021.png

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

gh copilot explain --help

スクリーンショット 2023-11-09 114939.png

例を使ってコマンドのhelpを表示してくれてますね!

コマンドの説明をしてもらう

CLI上のCopilotにコマンドの説明を要求するには次のように実行します:

gh copilot explain

スクリーンショット 2023-11-09 114136.png

または、説明が欲しいコマンドを直接プロンプトに追加します:

gh copilot explain "sudo apt-get"

スクリーンショット 2023-11-09 115016.png

CLIのCopilotは、コマンドの目的とそれがどのように動作するかを簡単な言葉で説明します。これにより、コマンドの文書を通じて理解する必要が無く、コマンドが何を入力として受け取り、何を出力として生成するのか、具体的な例と共に情報が提供されます。

現状では、上記の例のように質問の度に応答がかなり変化するようです。

先ほどhelpで表示されたものもexplainしてもらいましょう。

gh copilot explain 'git log --oneline --graph --decorate --all'

スクリーンショット 2023-11-09 125516.png

まだベータ版??可能性しか感じませんね...。

コマンドの提案を要求する

CLIのCopilotにコマンドの提案を要求するには次のように実行します:

gh copilot suggest

スクリーンショット 2023-11-09 114326.png

このコマンドで、必要なコマンドを得るための対話がはじまります。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"

スクリーンショット 2023-11-09 114552.png

コマンドのオプション設定
? 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"

スクリーンショット 2023-11-09 120508.png

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

gh copilot explain "npm install svelte"

スクリーンショット 2023-11-09 121829.png

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

gh copilot suggest "start svelte project"

スクリーンショット 2023-11-09 123618.png

おおお、なんかたくさんコマンド出たぞ。これをコピペして実行してみる。

npx degit sveltejs/template svelte-app
cd svelte-app
npm install
npm run dev

スクリーンショット 2023-11-09 120724.png

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

スクリーンショット 2023-11-09 121016.png

できたぁあああ!!!!
念のためExplain commandも見てみる。

? Select an option
  Explain command

スクリーンショット 2023-11-09 124003.png

英語でいろいろ説明してくれる。これは便利っすね...

📝 Conclusion: まとめ

今回は、GitHub CopilotのCLIツールの紹介をしました。GitHub CopilotのCLIツールは、ターミナル上で直接適切なコマンドを提案してくれる非常に便利な機能を提供しています。また、ターミナル内でコマンドの質問をすることも可能です!私が実際にSvelteの環境を作った時も、その有用性を強く感じました。ぜひ、皆さんも使ってみてください!

最後まで読んでくださりありがとうございました!
ご意見ご感想などありましたら、コメントお願いします!

📚 References: 参考文献

3
3
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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?