AIに力を借りてOSSに貢献する
Hackzでアドバイザーをしてるやなぎ(@apple_yagi)です。
今年は色々なOSSにコントリビュートできました(軽微な修正ばかりですが)。
その中で色々とAIの力を借りたところがあるのでご紹介します。
コードを読む時に力を借りる
まず初めにOSSのコードを読む時にはGitHub Copilot Chat in GitHubを使用します。GitHub Copilot Chat in GitHubはGitHub上でCopilot Chatが使える機能で、これを使用することでOSSのコードについて色々質問ができます。
私は実際にhappy-css-modulesにoutDirオプションを追加した時に元々 typed-scss-modules にあった outputFolderオプションの実装方法について質問をして、happy-css-modulesに移植しました。
GitHub Copilot Chat in GitHubの使い方はヘッダーか左下にあるGitHub Copilotのアイコンをクリックし、質問をするだけです。
outputFolderオプションはどのように実装されていますか?
と質問しています
実際にoutputFolderオプションを実装しているコードを教えてくれています
この例はOSSに対してでしたが、実業務でも初めて見るRepositoryに対して質問をすると色々と答えてくれるので便利です。
コードを書く時に力を借りる
コードを書く時には皆さんお馴染みのGitHub Copilotを使ってAIにコードを書いてもらいます。自分はよくやりたいことをコメントで書いてコードをAIに書いてもらうようにしています。
またエディター上でエラーが出ているコードのクイックフィックスでCopilotを使用することもでき、vitestにコントリビュートをした時にはTypeScriptのエラーが出ていたため、クイックフィックスで修正することが出来ました。
コミットする時に力を借りる
コミットする時のコミットメッセージもAIに書いてもらいます。VS Codeの左のサイドバーでソース管理を選択し、✨アイコンをクリックするとCopilotがコミットメッセージを書いてくれます。
コミットメッセージを生成する際はそのRepositoryの過去のコミットメッセージを学習してメッセージを生成してくれてる雰囲気を感じるので、そのOSSの形式に合ったいい感じのメッセージを生成してくれます。
Pull Requestを作成する時に力を借りる
Pull Requestを作成する時にはDescriptionを書く必要がありますが、それはChatGPTに書いてもらっています。使い方としては自分が書きたいことを日本語でChatGPTに打ち込んで、英語に翻訳してもらうことが多いです。
最後に
OSSにコントリビュートする時の一連の流れはほぼほぼAIの力を借りることができるようになってきたなと感じています。ただ、バグを見つけたり、Pull Requestに対する質問・修正依頼などが来た時には自分の力が試されるなとも思っており、現時点においては全てがAIによってできるというわけではなく、あくまでも自分が苦手とする部分において力を借りるのが限界だと感じています(自分の場合、英語力など)。自分としては今後もAIの力を借りてOSSに貢献していけたらと思います🤝
Discussion