GitHub CopilotとVS Codeを活用して、Stripeの組み込みや運用保守を効率化する方法

この記事では、VS CodeそしてGItHub Copilotを利用して決済・サブスクリプション機能の開発をスムーズに行う方法を紹介します。これからStripeの組み込みを開始するという開発者だけでなく、担当者の異動などで新しく決済・請求システムの運用保守を担当することになった方にとっても、コードの理解や修正方法をより効率的に知る方法としてぜひお試しください。

:::note
この記事は、[Visual Studio Code Advent Calendar 2024](https://qiita.com/advent-calendar/2024/visual_studio_code)16日目のポストです。
:::

## StripeによるVS Code拡張機能

StripeはVS Codeを利用した開発を効率化するための[拡張機能](https://docs.stripe.com/stripe-vscode)をリリースしています。この機能を利用することで、Stripe Webhook用のAPI開発やリクエストログのストリーミング・テストイベント送信などの作業をVS Code上で完結させることができます。

![スクリーンショット 2024-12-04 17.16.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/ab4499ec-7a9a-598c-6e40-2377d46d42bc.png)
https://docs.stripe.com/stripe-vscode

### Stripe拡張機能は、GitHub Copilotにも対応

Stripeが提供する拡張機能は、VS CodeでGitHub Copilotを利用するユーザーにとってさらに強力なツールとなります。これはStripeの拡張機能がGitHub CopilotのChat機能をサポートしており、　Copilot拡張機能を通して調査やデバッグなどを行うことができるためです。

https://code.visualstudio.com/docs/copilot/copilot-chat#_chat-participants

VS CodeでのGitHub Copilotのセットアップ方法については、[VS Codeが提供するドキュメント](https://code.visualstudio.com/docs/copilot/overview)を参考にしてください。

https://code.visualstudio.com/docs/copilot/overview

Stripeの拡張機能とCoiplit両方のセットアップが完了していれば、Copilot Chatで`@stripe`コマンドが利用できるようになっています。

![スクリーンショット 2024-12-04 17.16.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/1a6e78d0-6ad6-2a6f-c82f-544450706902.png)

## StripeのCopilot連携機能でできることの紹介（一部）

ここからはCopilotとStripeの拡張機能を組み合わせてできることの一部を紹介します。

### `@stripe {質問文}`コマンドで、Stripeに関する質問やコード生成を行う

もっともシンプルな使い方は、「Stripeの組み込み方法をCopilotに質問する」使い方です。`@stripe`コマンドで質問を行うと、[Stripeが公開しているドキュメント](https://docs.stripe.com)の内容に基づいた回答を得ることができます。例えば「サブスクリプションの作り方を教えて」と質問すると、事前に[Products](https://docs.stripe.com/api/products)や[Prices](https://docs.stripe.com/api/prices)リソースを作る必要があることなどを教えてもらえます。

![スクリーンショット 2024-12-04 17.17.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/da632ca5-a0d2-be71-24a9-962e448790b8.png)

Copilotはチャット形式で会話を続けることができます。そのため、言語を指定してコードの生成を依頼すると、指定した言語でのコードも入手できます。

![スクリーンショット 2024-12-05 14.35.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/e56fc6b2-2a51-b086-45d5-98476d3e6319.png)

また、`@stripe`コマンドで直接コードの生成を指示することも可能です。この場合生成したコードの説明や注意点なども生成してくれることがあります。

![スクリーンショット 2024-12-04 17.18.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/4e5f65b4-0baa-e1d1-b43b-455aeb2d6c0f.png)

## Copilotを使って、よりコードの運用保守をスムーズに行う

この他にもCopilotが持つ機能を利用して様々な効率化が期待できます。ここでは`/explain`と`/fix`の２コマンドを紹介します。

### 実装済みのコードを理解するためにつかう`/explain`コマンド

決済や請求管理に関する実装は、常にゼロから作るとは限りません。すでにあるアプリケーションコードの保守を引き継いで担当するケースももちろんあります。このような場合、多くの開発者にとって負担となるのが現在の実装を理解・把握することです。このようなケースでも、Copilotの機能は大いに役立ちます。

まず調査したいファイルをVS Codeで開きましょう。その後、Copilotのチャット画面にて、`@workspace /explain`を実行します。

![スクリーンショット 2024-12-04 17.31.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/13dab1e9-a424-f5a1-d028-27456af59d73.png)

`@workspace /explain`コマンドを実行すると、現在開いているコードがどういうものかを、説明してくれます。この説明文を読みながらコードを読み解くことで、現在の実装がどのようなものかを短時間で把握していくことができます。

![スクリーンショット 2024-12-04 17.33.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/bff05d0e-516b-cd44-0ab9-4d3910eed510.png)

またこの機能は特定のAPIパスや関数に絞っても利用できます。例えばExpressやHonoなどで追加したAPIパスを指定して質問することも可能です。

![スクリーンショット 2024-12-04 17.34.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/fc204818-a141-cabc-dac0-fd83eb94dc63.png)

このほかにもコードを選択した状態にすると、その部分だけ説明してくれます。どの行について説明しようとしているかは、[Ask Copilot]のファイル名に表示されている行数を確認しましょう。

![スクリーンショット 2024-12-04 17.35.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/7584b71a-923c-cbde-2d07-5a9a61cdd8d2.png)

このように`/explain`コマンドを活用することで、すでにあるコードベースの実装理解をよりスムーズに進めることができます。もしStripeに関する説明について、より詳しく知りたい・ドキュメントを参照したいとなった場合には、先に紹介した`@stripe`コマンドを利用して不明な点について質問することをお勧めします。

### fixでコード内の問題を調べる

もう1つのコマンドは、`@workspace /fix`コマンドです。これは、現在開いているファイルや選択中のコードについてCopilotが修正の提案をしてくれるコマンとです。例えばStripeのAPIキーを直接定義しているファイルを開いている場合、`@workspace /fix`コマンドを実行すると、APIキーを環境変数へ移動することをお勧めされます。

![スクリーンショット 2024-12-04 17.36.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/28ede8e8-8d92-f581-edf8-0ae72d032bdc.png)

このコマンドは`@workspace /fix <指示>`のような形で修正を依頼する内容を指定することもできます。APIレスポンスの内容を変更したい場合などには、変更したいコードを選択し、`@workspace /fix`コマンドを実行して提案してもらう指示を出しましょう。

![スクリーンショット 2024-12-04 17.37.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/eb316dba-9b4d-4589-eade-934fcca655ee.png)


## 更なるAI支援機能もプレビュー提供中！

今回の記事では、Copilot Chatを使った実装相談やコードの理解・そして修正提案についてを紹介しました。Stripeではこれ以外にも、さらなるAI支援機能も開発中です。Copilot / VS Codeを組み合わせた開発フローの更なる効率化に興味をお持ちの方は、[プレビュー参加申し込みフォーム](https://docs.google.com/forms/d/e/1FAIpQLSfJBbS_WQi7X-dd2CtQ6AUAJJPQV3mOXA3AbpofLw5chsCLjA/viewform)からお申し込みください。

![8d9e6304fb0721539a400c168248ed02464557d2.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/5b44e713-1e2c-a8a2-5ad3-9a94523b6858.jpeg)

VS Code拡張機能に関する最新情報は、[Stripe Insiders](https://insiders.stripe.dev)の[カテゴリー: VS Code extension](https://insiders.stripe.dev/c/vs-code-extension/10)からチェックできます。Stripe Insidersでは、これ以外にも様々な開発者向けプレビュー機能の紹介や、製品フィードバックの募集などを行っています。英語ではありますが、翻訳機能や生成AIなどを活用してぜひご参加ください。

https://insiders.stripe.dev