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が動く環境である必要があります。
$ go version go version go1.10 darwin/amd64
インストール
$ go get -u github.com/MichaelMure/git-bug
新しいレポートの作成
git bug add
で新しいバグレポートを追加できます。
README.mdではgit bug
new
になっていますが、コマンドの変更についてはこちらで議論されているようで、README.mdにまだ反映されていないようです。
コマンドを入力するとエディタが開くので、レポート内容を入力して保存すると新しいレポートを追加できます。
作成したレポートをリモートに反映
git bug push
でレポートをリモートに反映できます。
$ git bug push To https://github.com/inabajunmr/git-bug-sample.git * [new branch] refs/bugs/4bf21db7103f64ca96fdbc95b2bc6c07d3e2d337 -> refs/bugs/4bf21db7103f64ca96fdbc95b2bc6c07d3e2d337
レポートの一覧表示
git bug ls
でレポートの一覧表示が可能です。
$ git bug ls 44145f9 open UIがださい inabajunmr C:0 L:0 804d258 open ログイン時にブラウザから直接DBの全ユーザを取得し、ID、パスワードの検証をブラウザで行なっている inabajunmr C:0 L:0
queryを指定して対象を絞ることも可能です。ドキュメントはこちらを参照ください。
レポートの詳細表示
git bug show {id}
でレポートの詳細を表示できます。{id}にはgit bug
ls
で一覧表示した際の、一番左のカラムに表示されているidを指定します。
$ git bug show 804d258 [open] 804d2581 ログイン時にブラウザから直接DBの全ユーザを取得し、ID、パスワードの検証をブラウザで行なっている inabajunmr opened this issue 16 minutes ago labels: #0 inabajunmr <inabajun.for.regi@gmail.com> 全ユーザの認証情報が露出しているため、ログインの機構を全て見直す必要がある
リモートからレポートを取得
git bug pull
でレポートをリモートから取得できます。
この辺りはGitを触っている時と同じ感覚で操作できるのが良いです。
$ git bug pull Fetching remote ... Merging data ... 44145f9: new 4bf21db: new 804d258: new $ git bug ls 44145f9 open UIがださい inabajunmr C:0 L:0 804d258 open ログイン時にブラウザから直接DBの全ユーザを取得し、ID、パスワードの検証をブラウザで行なっている inabajunmr C:0 L:0 4bf21db 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でいい感じに操作するためのホスティングサービスなども登場するのではないでしょうか。
また、リポジトリの操作とタスクなどの管理が近いところにあると、コードの修正中に発覚したバグの記録などを行うときの流れが自然になるというメリットがあるような気がします。
実戦投入できるバージョンが公開されるのが楽しみです。
私からは以上です。