AI News HubLIVE
サイト内リライト2 分で読了

GitHub Copilotアプリにおけるスタックセッションとプルリクエスト

著者は、GitHub Copilotアプリのスタックセッションとプルリクエスト機能を使って、10年前のフロントエンドコードベースをモダナイズした経験を共有。スコープクリープを避けながら、段階的なアップデートを実現した。

ソースGitHub AI & ML著者: Cassidy Williams

GitHubブログの記事では、GitHub Copilotアプリのスタックセッションとスタックプルリクエスト機能を使って、古いコードベースを近代化する方法が紹介されています。著者は2014年から個人用ダッシュボードアプリを保守しており、React 15(2016年リリース)、Less CSSプリプロセッサ、旧バージョンのreact-bootstrapといった非常に古い依存関係に悩まされていました。手動での更新を試みて挫折した後、AIツールの力を借りることにしました。

最初のステップでは、GitHub CopilotのPlanモードで一度にすべてをモダナイズする計画を立てました。Tailwindか純粋なCSSへの移行、Lessの削除、アクセシビリティとレスポンシブデザインの改善、依存関係のアップデートを試みました。しかし、以前に部分的な更新を試みたdevブランチが存在していたことに気づかず、計画は失敗しました。

著者はすぐにdevブランチに作業を切り替えました。Copilotは新しいセッションを自動生成し、最初のプルリクエストを閉じて、スタイルに関する決定をdevブランチへの変更に移植しました。このプロセスで、スタックセッションの有用性が示されました。コンテキストを失わずに簡単に切り替えられるのです。

テスト中に、react-bootstrap内の古い非推奨API(findDOMNodeやcomponentWillReceiveProps)の警告が発見されました。再度Planモードで議論した結果、ライブラリを完全に置き換える決定を下しました。

スコープクリープを避けるため、著者はすべての変更を1つの巨大なプルリクエストにまとめず、スタックセッションを活用しました。最初の作業用のプルリクエストを作成し、そのブランチをベースに新しいセッションを開始してreact-bootstrapの置き換えを行いました。Copilotは自動的にスタックプルリクエストチェーンを生成し、各プルリクエストが前のブランチをターゲットにして、最終的にdevブランチにマージされるようにしました。

記事の最後には、スタックセッションのスクリーンショットが示されています。最上位にリポジトリ、その下に「Frontend modernization」セッション、さらにその下に失敗した最初のプルリクエスト(赤いアイコン)、成功した作業用プルリクエスト、そして進行中のreact-bootstrap置き換えのドラフトプルリクエストが階層的に表示されています。著者は、ソフトウェア開発がこれほどスムーズになったことはないと述べ、スタックセッションとプルリクエストによってコードリファクタリングが容易で管理しやすくなったと締めくくっています。