プロジェクト管理ツールの Nulab Backlog を日々使っていると、こんな場面に出会いませんか。
- 数十件、数百件の課題の担当者や期限をまとめて変更したい
- 課題の一覧を Excel に落として棚卸しや報告資料を作りたい
- 大量の課題から目的のものを素早く探したい
Web 画面で 1 件ずつ操作するには限界があります。この「まとめて扱いたい」というニーズに応えるために開発したのが、デスクトップアプリ Backlog Assistant です。MIT ライセンスの OSS として公開しています。
コンセプト: ローカルキャッシュ + Excel + 安全な一括操作
本アプリは課題・ユーザ情報をローカル DB(SQLite)に同期してから扱います。検索や抽出はすべて手元で完結するため、全文検索索引により大量の課題でも一瞬で絞り込めます。キーワードの AND / OR 検索、日付範囲、状態・担当者、そしてカスタム属性(テキスト・数値・日付・リスト)での絞り込みにも対応。課題キーをクリックすれば詳細をその場でポップアップ表示し、ワンクリックで課題 URL のコピーもできます。
抽出結果は列を選んで Excel 出力(カスタム属性や親課題キーも出力可能)。一括更新は、テンプレート Excel を出力 → 手元で編集 → 取り込みという流れで、検索条件で対象を絞ったテンプレート作成にも対応しています。
「一括更新は怖い」に正面から向き合う
一括操作で最も怖いのは誤って大量のデータを壊すことです。そこで書き込み側は多重の安全装置を設けました。
- 取り込み時の検証と dry-run プレビュー必須(何がどう変わるかを確認してから実行)
- 競合検知: 他の人が先に更新していた課題には書き込まない
- 二重作成防止: 通信断などで結果が不明な行は保留し、再開時に作成済み課題と突合してから再送
- 実行履歴・行単位の結果・結果レポート Excel で後から追跡可能
また、API キーは OS のキーチェーン(Windows 資格情報マネージャー / macOS Keychain)にのみ保存し、通信先は Backlog のドメインに限定。動作ログも機密情報をマスクする設計です。
技術スタック
Go + Wails v2 + Vue 3(TypeScript)で、Windows / macOS のネイティブアプリとして動作します。SQLite は純 Go 実装(modernc.org/sqlite)を使い、FTS5 の全文検索索引で 10 万件規模でもミリ秒台の検索を実現しました。開発は TDD で進め、CI でテスト・lint・両 OS のビルドを回しています。
使ってみる
GitHub の Releases から zip をダウンロードして展開するだけで使えます(インストーラ不要)。初期設定から Excel テンプレートの記入規則までまとめたユーザガイドも同梱しています。
👉 https://github.com/r404r/p-backlog-assistant
日々の Backlog 運用が少しでも楽になれば嬉しいです。フィードバック・Issue・コントリビューション歓迎です!