「gpt2redmine」: ChatGPTとRedmineをつなぐChrome拡張機能

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のチケットに変換し、プロジェクトの情報を整理しやすくするツールです。この拡張機能は、知識の共有、アイディアの整理、問題解決プロセスの文書化をサポートしてくれるだろうと。思ってます(笑)

じゃあねー。