redmine-issue-button
main
ヘッダに「Redmine へ起票」ボタンを追加し、作業の記録を Redmine のチケットにまとめて登録できるようにした。
これまで CLAUDE.md / README.md に「外部通信しない」と書いていたが、**「外部通信は Redmine 連携だけ」**に改訂した。この機能を使わなければ、従来どおりローカルの jsonl を読むだけでどこにも接続しない。標準ライブラリのみという制約は維持(urllib / ssl / subprocess)。
urllib
ssl
subprocess
下書きを作る → 中身を確かめる → 起票する の 3 段。取得元は 2 つ。
git 履歴のまとめ方は件名の prefix と日付だけを見た機械的なもので、中身の判断はしない。
実際に 37 件を手で起票したときに引っかかった点を、コードと CLAUDE.md に残した。
status_id
PUT /issues/<id>.json
redmine.json
.gitignore
GET /api/redmine/config
GET/POST /api/redmine/config
GET /api/redmine/meta
POST /api/redmine/draft
POST /api/redmine/issues
GET /api/redmine/job?id=
do_POST はこの系統でのみ使う。
do_POST
**実 Redmine には 1 件も送っていない。**偽 Redmine をモックとして立て、実物と同じ「作成時の status_id を無視する」振る舞いをさせて通した。
常用中のインスタンスは再起動しないとボタンが出ない。
🤖 Generated with Claude Code
chktime のタスクと git 履歴から下書きを作り、まとめて Redmine へ登録できる ようにした。外部通信はこの機能を使ったときだけで、使わなければ従来どおり ローカルの jsonl を読むだけ。 - Redmine の REST API を叩く最小クライアント (標準ライブラリのみ) - 下書きは「タスクから」(1タスク=1チケット) と「git 履歴から」 (日ごと / 日 x 種別 / 期間一括) の 2 系統 - 起票は件数 x 間隔ぶん時間がかかるのでジョブにし、進捗だけ見に行く - 作成時の status_id は Redmine 側で無視されるため、作成後に付け直す - 連続アクセスに 403 を返すサーバがあるので 1 件ごとに間隔をあける (既定 7 秒) - 自己署名証明書が普通なので、既定は証明書の検証なし - API キーは redmine.json に置き、git 管理外にする Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
No dependencies set.
The note is not visible to the blocked user.
Powered by TurnKey Linux.
ヘッダに「Redmine へ起票」ボタンを追加し、作業の記録を Redmine のチケットにまとめて登録できるようにした。
方針の変更
これまで CLAUDE.md / README.md に「外部通信しない」と書いていたが、**「外部通信は Redmine 連携だけ」**に改訂した。この機能を使わなければ、従来どおりローカルの jsonl を読むだけでどこにも接続しない。標準ライブラリのみという制約は維持(
urllib/ssl/subprocess)。使い方
下書きを作る → 中身を確かめる → 起票する の 3 段。取得元は 2 つ。
git 履歴のまとめ方は件名の prefix と日付だけを見た機械的なもので、中身の判断はしない。
手作業で踏んだ落とし穴を織り込んである
実際に 37 件を手で起票したときに引っかかった点を、コードと CLAUDE.md に残した。
status_idが無視される(既定の New で入る)→ 作成直後にPUT /issues/<id>.jsonで付け直すAPI キーの扱い
redmine.jsonに保存し、.gitignoreに追加GET /api/redmine/configはキーの有無だけ返す(値は返さない)追加した API
GET/POST /api/redmine/configGET /api/redmine/metaPOST /api/redmine/draftPOST /api/redmine/issuesGET /api/redmine/job?id=do_POSTはこの系統でのみ使う。検証
**実 Redmine には 1 件も送っていない。**偽 Redmine をモックとして立て、実物と同じ「作成時の status_id を無視する」振る舞いをさせて通した。
注意
常用中のインスタンスは再起動しないとボタンが出ない。
🤖 Generated with Claude Code