git-bug
is a bug tracker that:
- is fully embeded in git: you only need your git repository to have a bug tracker
- is distributed: use your normal git remote to collaborate, push and pull your bugs!
- works offline: in a plane or under the sea? Keep reading and writing bugs!
- prevents vendor lock-in: your usual service is down or went bad? You already have a full backup.
- is fast: listing bugs or opening them is a matter of milliseconds
- doesn't pollute your project: no files are added in your project
- integrates with your tooling: use the UI you like (CLI, terminal, web) or integrate with your existing tools through the CLI or the GraphQL API
- bridges to other bug trackers: use bridges to import and export to other trackers.
π§ This is now more than a proof of concept, but still not fully stable. Expect dragons and unfinished business. π§
Pre-compiled binaries
- Go to the release page and download the appropriate binary for your system.
- Copy the binary anywhere in your $PATH
- Rename the binary to
git-bug
(orgit-bug.exe
on windows)
That's all !
Linux packages
go get (unstable)
go get -u github.com/MichaelMure/git-bug
If it's not done already, add golang binary directory in your PATH:
export PATH=$PATH:$(go env GOROOT)/bin:$(go env GOPATH)/bin
Create a new identity:
git bug user create
Create a new bug:
git bug add
Your favorite editor will open to write a title and a message.
You can push your new entry to a remote:
git bug push [<remote>]
And pull for updates:
git bug pull [<remote>]
List existing bugs:
git bug ls
Filter and sort bugs using a query:
git bug ls "status:open sort:edit"
You can now use commands like show
, comment
, open
or close
to display and modify bugs. For more details about each command, you can run git bug <command> --help
or read the command's documentation.
An interactive terminal UI is available using the command git bug termui
to browse and edit bugs.
You can launch a rich Web UI with git bug webui
.
This web UI is entirely packed inside the same go binary and serve static content through a localhost http server.
The web UI interact with the backend through a GraphQL API. The schema is available here.
Github | Gitlab | Launchpad | |
---|---|---|---|
incremental (can import more than once) |
βοΈ | βοΈ | β |
with resume (download only new data) |
βοΈ | βοΈ | β |
identities | βοΈ | βοΈ | βοΈ |
identities update | β | β | β |
bug | βοΈ | βοΈ | βοΈ |
comments | βοΈ | βοΈ | βοΈ |
comment editions | βοΈ | β | β |
labels | βοΈ | βοΈ | β |
status | βοΈ | βοΈ | β |
title edition | βοΈ | βοΈ | β |
media/files | β | β | βΒ |
automated test suite | βοΈ | βοΈ | β |
Github | Gitlab | Launchpad | |
---|---|---|---|
bug | Β :heavy_check_mark: | βοΈ | β |
comments | βοΈ | βοΈ | β |
comment editions | βοΈ | βοΈ | β |
labels | βοΈΒ | βοΈ | β |
status | βοΈ | βοΈ | β |
title edition | βοΈ | βοΈ | β |
automated test suite | βοΈ | βοΈ | βΒ |
Interactively configure a new github bridge:
git bug bridge configure
Or manually:
git bug bridge configure \
--name=mybridge \
--target=github \
--url=https://github.com/michaelmure/git-bug \
--token=$TOKEN
Import bugs:
git bug bridge pull [<name>]
Export modifications:
git bug bridge push [<name>]
Deleting a bridge:
git bug bridge rm [<name>]
Interested by how it works ? Have a look at the data model and the internal bird-view.
- media embedding
- more bridges
- extendable data model to support arbitrary bug tracker
- inflatable raptor
PRs accepted. Drop by the Gitter lobby for a chat or browse the issues to see what is worked on or discussed.
Developers unfamiliar with Go may try to clone the repository using "git clone". Instead, one should use:
go get -u github.com/MichaelMure/git-bug
The git repository will then be available:
# Note that $GOPATH defaults to $HOME/go
$ cd $GOPATH/src/github.com/MichaelMure/git-bug/
You can now run make
to build the project, or make install
to install the binary in $GOPATH/bin/
.
To work on the web UI, have a look at the dedicated Readme.
This project exists thanks to all the people who contribute.
Thank you to all our backers! π [Become a backer]
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]
Unless otherwise stated, this project is released under the GPLv3 or later license Β© Michael MurΓ©.
The git-bug logo by Viktor Teplov is released under the Creative Commons Attribution 4.0 International (CC BY 4.0) license Β© Viktor Teplov.