🐨

GitHub Copilot WorkSpace(テクニカルプレビュー版)のアクセス権をもらったので使ってみた

2024/10/22に公開

GitHub Copilot WorkSpaceとは

今年の4月に新たに発表されたGitHub Copilotの新機能

https://github.blog/jp/2024-04-30-github-copilot-workspace/

どんな機能かというと

  • 問題の把握と解決に向けた戦略だて
  • 戦略をもとにコードの改修方針、設計、仕様書の作成
  • 仕様書をもとにコードの改修
  • プルリクエストの作成

これら全てを行なってくれるサービスです。
CopilotはVSCode上でエンジニアのコーディングのアシスタントがメインな機能でしたが、
これを使えばそもそも発生している問題からCopilotが関わって解決に導いてくれます。

現在テクニカルプレビュー版のため、Waitlistに登録していた人が順次アクセス権を付与してもらっている状況です。
僕も5月にWaitlistに登録して半年の月日を経てようやく使えるようになりましたので早速試してみます!

試してみる

1. issueを作成

Copilot Workspaceを使うためにissueを立てます。
今回はプライベートで開発している、生成AIにリクエストを送るためのAPI(Python)のリポジトリを使います。

リポジトリの「issue」にアクセス。


改善活動という目的で「コードフォーマッターとLinterを導入したい」という旨のissueを作成します。


issueが作成されると画面の右側に「Open in Workspace」というボタンが出てきました。
Copilot Workspaceのアクセス権がないと出てこなかったやつです。
クリックするとWorkspaceの画面に遷移します。


2. Brainstorm(戦略だて)

Workspace画面に遷移しました。
遷移すると早速Copilotが生成を始めてます。


以下のように出力されました。
「Blackとflake8はプロジェクトに入ってるの?入ってなさそうだね...」
「requirements.txtにライブラリを追加しよう。あとymlファイルに追加してGitHub Actionsで自動化させよう」
などの文章が生成されました。
現状把握してやらなきゃいけないことを洗い出してくれてるようです。


ここで色々質問できるらしいんで、「Blackとflake8以外におすすめライブラリないっすか?」と聞いてみます。


isortとかpylintを提案してくれました。
良い感じなので、上の「Add to task」をクリックして次ステップの仕様書・設計書作成の参考に使ってもらうようにします。

おすすめの質問文も提案してくれてるので、下から二つ目の「コードの品質向上に向けたそのほかのアイデア」をクリック。


生成中...


めちゃくちゃ良い感じ!!
テストコードとドキュメントの整備もしたいので二つをTaskに追加しました。


3. 仕様書と設計書を作成

先ほど追加した4つのアイデアをもとに次のステップにいきます。
左側にある「プランを生成する」をクリック。


生成中...


追加・修正するファイルと、どのような実装をするかを文字ベースで作成してくれました。
「アイテムを追加」をクリックすることで追加の要望を記載できます。
もし不要なファイルがあったら削除もできます。


4. 設計書をもとにCopilotが実装

先ほどの設計書は問題なさそうだったので、このまま進めます。
選択したファイルを実装する」をクリック


コード生成中...


実装してくれました、ここもいい感じ~


ちょうど警告が出ている箇所があったのでCopilotに修正してもらいます。
波線をホバーするとE302と表示されていたので改修するよう依頼しました。


理解して修正してくました。
書いた要望は左側の設計書にも反映されます。


5. プルリクエストを作成

コードの改修は問題なさそうなので最後に右上の「Create pull request」ボタンをクリック。


GitHubのリポジトリに戻るとプルリクエストが上がっていました。

これがCopilot Workspace一連の機能になります。
issueの内容がそこまで難しくなかったのものあるかもしれませんが、自分で手修正することもほとんどなく非常に順調に進められました。

感想

使っててめちゃくちゃワクワクする機能でした。今後もっと色々試してみます。

試しにやってみたくらいなので、もっとコードのボリュームが多かったりissueの内容が複雑だとどうなるのか気になります。
GitHub Copilotだと限界があるなーと感じる時があるのですが、Copilot Workspaceだとコードの実装前から色々認識合わせをしてCopilotのハンドリングができるので、使いこなせればかなり難しい内容でも解決してくれそうです。

ヘッドウォータース

Discussion