git-bugでWebサービスに依存せず、Gitリポジトリだけでバグレポートを管理する
はじめに
本記事で紹介させていただくgit-bugは、2018年9月30日時点でまだ
This is for now a proof of concept. Expect dragons and unfinished business.
![]()
です。が、仕組み&思想が面白いと思ったのと、今後の流れが楽しみなので記事にさせていただきました。
アプリケーションとタスク管理の関連について
アプリケーションに関するタスクの管理にWebサービスを利用するのはかなり一般的になってきたように思います。 この時、パターンとして
- コードそのものを管理するホスティングサービスでタスク管理もしてしまうケース(GitHubでGitリポジトリを管理しつつ、IssueもGitHub上で管理するようなパターン)
- コードの管理とタスク管理でサービスを分けるケース
- 何らかの方法でGitリポジトリを管理(オンプレでもなんでも)と、JIRAなどを併用するパターン
が主な形かなと思います。私は前者で管理できる範囲であれば前者が楽だなと思っているのですが、コードとタスクがサービスのレベルで結合していることを懸念点と感じている方もいるのではないでしょうか。
例えば別のホスティングサービスに移行したくなった時に、Gitのリポジトリで管理している範囲はGitを移行すれば良いのですが、タスクやその他の情報についてどうすれば良いのか?という懸念があります。 完了済みのものも含めて捨ててしまうのは嬉しくないですし、真っ当に全てを残して移行するのはそれなりに手間のかかる作業です。
本記事で紹介させていただくgit-bugは、Gitリポジトリの中でバグレポートを管理するためのツールです。 「リポジトリ」と「バグレポート」の管理がリポジトリ内で完結するため、サービスへの依存を減らすことができるのではないでしょうか。
git-bugとは
git-bugはGitに直接組み込むバグレポートツールです。 レポートそのものをGitリポジトリで管理するところが最大の特徴です。
レポートの作成、編集、コメント、検索などが行えます。 また、インタラクティブなターミナルのインターフェースや、Web UI[WIP]が用意されています。
また、README.mdではバグレポートのためのツールとして説明されていますが、タスク管理ツールの感覚で利用できると思います。
繰り返しになりますが、2018年9月30日時点でgit-bugは、
This is for now a proof of concept. Expect dragons and unfinished business.
![]()
です。
やってみる
環境
前提条件として、Goが動く環境である必要があります。
1 2 | $ go versiongo version go1.10 darwin/amd64 |
インストール
1 | $ go get -u github.com/MichaelMure/git-bug |
新しいレポートの作成
git bug addで新しいバグレポートを追加できます。
README.mdではgit bug
newになっていますが、コマンドの変更についてはこちらで議論されているようで、README.mdにまだ反映されていないようです。
コマンドを入力するとエディタが開くので、レポート内容を入力して保存すると新しいレポートを追加できます。
作成したレポートをリモートに反映
git bug pushでレポートをリモートに反映できます。
1 2 3 4 5 | $ git bug push* [new branch] refs/bugs/4bf21db7103f64ca96fdbc95b2bc6c07d3e2d337 ->refs/bugs/4bf21db7103f64ca96fdbc95b2bc6c07d3e2d337 |
レポートの一覧表示
git bug lsでレポートの一覧表示が可能です。
1 2 3 4 | $ git bug ls44145f9 open UIがださい inabajunmr C:0 L:0804d258 open ログイン時にブラウザから直接DBの全ユーザを取得し、ID、パスワードの検証をブラウザで行なっているinabajunmr C:0 L:0 |
queryを指定して対象を絞ることも可能です。ドキュメントはこちらを参照ください。
レポートの詳細表示
git bug show {id}でレポートの詳細を表示できます。{id}にはgit bug
lsで一覧表示した際の、一番左のカラムに表示されているidを指定します。
1 2 3 4 5 6 7 | $ git bug show 804d258[open] 804d2581 ログイン時にブラウザから直接DBの全ユーザを取得し、ID、パスワードの検証をブラウザで行なっているinabajunmr opened this issue 16 minutes agolabels:#0 inabajunmr <inabajun.for.regi@gmail.com>全ユーザの認証情報が露出しているため、ログインの機構を全て見直す必要がある |
リモートからレポートを取得
git bug pullでレポートをリモートから取得できます。
この辺りはGitを触っている時と同じ感覚で操作できるのが良いです。
1 2 3 4 5 6 7 8 9 10 11 12 13 | $ git bug pullFetching remote ...Merging data ...44145f9: new4bf21db: new804d258: new$ git bug ls44145f9 open UIがださい inabajunmr C:0 L:0804d258 open ログイン時にブラウザから直接DBの全ユーザを取得し、ID、パスワードの検証をブラウザで行なっているinabajunmr C:0 L:04bf21db open 長時間利用していると動作が止まることがある inabajunmr C:0 L:0 |
上記の操作は別の場所にリポジトリをcloneしなおしてから行なっています。
その他操作
レポートにコメントやラベルをつけたり、レポートのステータスを変えたりできるようです。コマンドの一覧はこちらを参照ください。
インタラクティブなターミナル上での操作
git bug termuiで、ターミナル上でのインタラクティブなUIを表示できます。
※ 2018年9月30日時点のバージョン0.3.0では日本語がうまく表示できませんでした。
レポートを選択し、以下の各コマンドでレポートの操作が可能です。
c:レポートへのコメント追加t:レポートのタイトル変更a:レポートへのラベル追加r:レポートのラベル削除
ブラウザでの表示
git bug webuiで、Web UIを起動できます。現状まだWIPですが、レポートの一覧などの参照はすでに可能なようです。
まとめ
本記事で紹介させていただくgit-bugは、Gitリポジトリの中でバグレポートを管理するためのツールです。
繰り返しになりますが、2018年9月30日時点ではgit-bugは、
This is for now a proof of concept. Expect dragons and unfinished business.
![]()
です。
個人的にはIssueやバグレポートもGitリポジトリで管理してしまうという思想は正しい気がします。 この流れがもしメジャーになってくると、Gitリポジトリで管理しているレポートをWebでいい感じに操作するためのホスティングサービスなども登場するのではないでしょうか。
また、リポジトリの操作とタスクなどの管理が近いところにあると、コードの修正中に発覚したバグの記録などを行うときの流れが自然になるというメリットがあるような気がします。
実戦投入できるバージョンが公開されるのが楽しみです。
私からは以上です。