ChatGPT にソースコードをコピペして質問内容を投げるのが面倒になってきたので、その辺りを自動化した処理を GitHub の Issue 投稿に連動したワークフローにしました。
ソースコードのコピペを実現するために、プロジェクト内のソースコードを結合したテキストを生成する shell スクリプトを作成しました。 shell の変数展開 ( ${file##*.} の部分) が、file 変数の文字列から、”.” より前方部分を除去する処理なのです。この書き方でそれが実現できることに驚きました。
Gemini の呼び出し部分には、以下の様な shell スクリプトを作りました。 Gemini のトークン、回答内容の保存先、プロンプトを引数に与えて実行すると、結果が保存されます。generationConfig で LLM の設定ができますが、ここでは Google AI Studio の初期値をそのまま使用しています。
最後に workflow ファイルです。一つ目の ソースコード抽出スクリプトと、 github の api を組み合わせたプロンプトを作成しました。 私は workflow にプロンプトを直接入力していますが、 workflow_dispatch に引数を手動入力できる機能もあり、それを使うと任意のプロンプトとソースコードを組み合わせたワークフローを作成することもできます。