2018-07-15 00:16:54 +03:00
# git-bug
2018-08-06 04:22:36 +03:00
[![Build Status ](https://travis-ci.org/MichaelMure/git-bug.svg?branch=master )](https://travis-ci.org/MichaelMure/git-bug)
[![License: GPL v3 ](https://img.shields.io/badge/License-GPLv3+-blue.svg )](http://www.gnu.org/licenses/gpl-3.0)
[![GoDoc ](https://godoc.org/github.com/MichaelMure/git-bug?status.svg )](https://godoc.org/github.com/MichaelMure/git-bug)
2018-08-07 17:01:13 +03:00
[![Go Report Card ](https://goreportcard.com/badge/github.com/MichaelMure/git-bug )](https://goreportcard.com/report/github.com/MichaelMure/git-bug)
2018-08-06 04:22:36 +03:00
2018-08-17 14:19:35 +03:00
> Distributed bug tracker embedded in Git
2018-07-15 01:11:16 +03:00
Would it be nice to not have to rely on a web service somewhere to deal with bugs ?
Would it be nice to be able to browse and edit bug report offline ?
2018-08-17 14:19:35 +03:00
`git-bug` is a distributed bug tracker embedded in `git` . It use git's internal storage so **no files are added in your project** .
2018-08-06 15:09:33 +03:00
As you would do with commits and branches, you can push your bugs to the same git remote your are already using to collaborate with other peoples.
2018-07-15 00:16:54 +03:00
2018-07-15 01:16:49 +03:00
:construction: This is for now a proof of concept. Expect dragons and unfinished business. :construction:
2018-07-15 00:16:54 +03:00
## Install
2018-08-12 22:53:36 +03:00
### Go get
2018-07-15 00:16:54 +03:00
```shell
go get github.com/MichaelMure/git-bug
```
If it's not done already, add golang binary directory in your PATH:
```bash
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
```
2018-08-12 22:53:36 +03:00
### Pre-compiled binaries
2018-07-15 00:16:54 +03:00
2018-08-12 22:53:36 +03:00
1. Go to the [release page ](https://github.com/MichaelMure/git-bug/releases/latest ) and download the appropriate binary for your system.
2. Copy the binary anywhere in your PATH
3. Rename the binary to `git-bug` (or `git-bug.exe` on windows)
That's all !
2018-07-15 00:16:54 +03:00
2018-08-13 03:19:34 +03:00
## CLI usage
2018-07-15 00:16:54 +03:00
2018-08-06 04:22:36 +03:00
Create a new bug:
2018-07-15 00:16:54 +03:00
```
2018-08-06 04:22:36 +03:00
git bug new
2018-07-15 00:16:54 +03:00
```
2018-08-06 04:22:36 +03:00
Your favorite editor will open to write a title and a message.
2018-07-15 00:16:54 +03:00
You can push your new entry to a remote:
```
git bug push [< remote > ]
```
And pull for updates:
```
git bug pull [< remote > ]
```
2018-08-06 04:22:36 +03:00
List existing bugs:
```
git bug ls
```
2018-07-16 16:22:09 +03:00
2018-08-06 04:22:36 +03:00
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 ](doc/md/git-bug.md ).
2018-07-17 20:31:18 +03:00
2018-08-13 03:19:34 +03:00
## Interactive terminal UI
2018-07-16 16:22:09 +03:00
2018-08-08 19:51:11 +03:00
An interactive terminal UI is available using the command `git bug termui` to browse and edit bugs.
2018-07-16 16:22:09 +03:00
2018-08-17 14:19:35 +03:00
![terminal UI ](doc/termui_recording.svg )
2018-07-18 17:51:49 +03:00
2018-08-17 14:19:35 +03:00
## Web UI (status: WIP)
2018-07-16 16:22:09 +03:00
2018-08-08 19:51:11 +03:00
You can launch a rich Web UI with `git bug webui` .
2018-07-17 20:31:18 +03:00
2018-08-17 14:19:35 +03:00
![Web UI screenshot 1 ](doc/webui1.png )
![Web UI screenshot 2 ](doc/webui2.png )
2018-07-16 16:22:09 +03:00
2018-08-06 04:22:36 +03:00
This web UI is entirely packed inside the same go binary and serve static content through a localhost http server.
2018-07-16 23:38:52 +03:00
2018-08-06 04:22:36 +03:00
The web UI interact with the backend through a GraphQL API. The schema is available [here ](graphql/schema.graphql ).
2018-07-17 21:51:09 +03:00
2018-07-16 15:53:32 +03:00
## Internals
Interested by how it works ? Have a look at the [data model ](doc/model.md ).
2018-08-06 04:22:36 +03:00
## Misc
- [Bash completion ](misc/bash_completion )
- [Zsh completion ](misc/zsh_completion )
- [ManPages ](doc/man )
2018-07-15 02:49:46 +03:00
## Planned features
2018-08-08 19:51:11 +03:00
- media embedding
- import/export of github issue
- extendable data model to support arbitrary bug tracker
- inflatable raptor
2018-07-15 02:49:46 +03:00
2018-07-15 00:16:54 +03:00
## Contribute
PRs accepted.
## License
2018-07-16 14:30:08 +03:00
GPLv3 or later © Michael Muré