gpt2redmineは、ChatGPTで得た洞察やアイデアをRedmineのチケットに手間なく転送できるChrome拡張機能です。このツールを使うと、ChatGPTのセッション内容をRedmineで簡単に追跡・管理できるようになり、プロジェクト管理がさらにスムーズになります。
ChatGPTはよく使うんだけど、検索や管理が難しい。なのでRedmineに任せようということで作りました。
機能の紹介とコード
一応ソースコードを簡単に説明しておきます。
1. 起動と初期化:
DOMContentLoadedイベントリスナーを使って、ページが読み込まれたときにLoad関数を呼び出し、拡張機能の初期化を行います。保存ボタン(save_button)とクリアボタン(clear_button)にもリスナーを設定し、クリックした際の動作を定義します。
document.addEventListener('DOMContentLoaded', Load);
document.getElementById('save_button').addEventListener('click', saveRedmineInfo);
document.getElementById('clear_button').addEventListener('click', clearRedmineInfo);
2. Redmine情報の保存と削除:
saveRedmineInfoは、ユーザーが入力したRedmineの認証情報をローカルストレージに保存します。ここでは、APIトークン、URL、プロジェクトID、トラッカーIDを取得し、chrome.storage.localにセットしています。clearRedmineInfoでは、保存した認証情報を削除できます。これは設定のリセット時に便利です。
function saveRedmineInfo() {
// 省略: ユーザー入力の取得とストレージへの保存
}
function clearRedmineInfo() {
// 省略: ストレージからの情報削除
}
3. Redmineにデータを投稿する:
call関数は、ChatGPTからのセッション内容をRedmineのチケットとして投稿します。ここで重要なのは、XMLHttpRequestを使用してRedmineのAPIにPOSTリクエストを送信している点です。チケットの内容には、ChatGPTセッションから取得した質問と回答、そしてユーザーが設定したプロジェクトIDやトラッカーIDが含まれます。
function call(obj){
// 省略: RedmineのAPIエンドポイントにデータをPOST
}
4. ユーザーインターフェースとフィードバックの表示:
Load関数は、拡張機能が起動するときに、すでに保存されているRedmine情報をフォームにロードし、設定が完了していれば、ChatGPTからのデータをRedmineに投稿するプロセスを開始します。showResult関数は、Redmineへの投稿結果をユーザーに通知します。成功した場合は「Success」、失敗した場合は「Failed」と表示されます。
function Load() {
// 省略: ストレージからの情報読み込みと初期化
}
function showResult(result) {
// 省略: 結果の表示
}
セットアップと使い方
Chrome Web Storeから拡張機能をインストール。アイコンをクリックしてRedmineの情報を入力。ChatGPTのセッションを進め、終了後に「Post to Redmine」をクリック。
まとめ
gpt2redmineは、ChatGPTのセッションをRedmineのチケットに変換し、プロジェクトの情報を整理しやすくするツールです。この拡張機能は、知識の共有、アイディアの整理、問題解決プロセスの文書化をサポートしてくれるだろうと。思ってます(笑)
じゃあねー。