git-bugでWebサービスに依存せず、Gitリポジトリだけでバグレポートを管理する

182件のシェア(すこし話題の記事)

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

本記事で紹介させていただく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とは

GitHub | 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でいい感じに操作するためのホスティングサービスなども登場するのではないでしょうか。

また、リポジトリの操作とタスクなどの管理が近いところにあると、コードの修正中に発覚したバグの記録などを行うときの流れが自然になるというメリットがあるような気がします。

実戦投入できるバージョンが公開されるのが楽しみです。

私からは以上です。