README.md

  1<p align="center">
  2    <img width="150px" src="https://cdn.rawgit.com/MichaelMure/git-bug/master/misc/logo/logo-alpha-flat-bg.svg">
  3</p>
  4<h1 align="center">git-bug</h1>
  5
  6<div align="center">
  7
  8[![Build Status](https://travis-ci.org/MichaelMure/git-bug.svg?branch=master)](https://travis-ci.org/MichaelMure/git-bug)
  9[![Backers on Open Collective](https://opencollective.com/git-bug/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/git-bug/sponsors/badge.svg)](#sponsors) [![License: GPL v3](https://img.shields.io/badge/License-GPLv3+-blue.svg)](http://www.gnu.org/licenses/gpl-3.0)
 10[![GoDoc](https://godoc.org/github.com/MichaelMure/git-bug?status.svg)](https://godoc.org/github.com/MichaelMure/git-bug)
 11[![Go Report Card](https://goreportcard.com/badge/github.com/MichaelMure/git-bug)](https://goreportcard.com/report/github.com/MichaelMure/git-bug)
 12[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/the-git-bug/Lobby)
 13
 14</div>
 15
 16`git-bug` is a bug tracker that:
 17- **fully embed in git**: you only need your git repository to have a bug tracker
 18- **is distributed**: use your normal git remote to collaborate, push and pull your bugs !
 19- **works offline**: in a plane or under the sea ? keep reading and writing bugs
 20- **prevent vendor locking**: your usual service is down or went bad ? you already have a full backup
 21- **is fast**: listing bugs or opening them is a matter of milliseconds
 22- **doesn't pollute your project**: no files are added in your project
 23- **integrate with your tooling**: use the UI you like (CLI, terminal, web) or integrate with your existing tools through the CLI or the GraphQL API
 24- **bridge with other bug trackers**: [bridges](#bridges) exist to import and soon export to other trackers.
 25
 26:construction: This is now more than a proof of concept, but still not fully stable. Expect dragons and unfinished business. :construction:
 27
 28## Install
 29
 30<details><summary>Pre-compiled binaries</summary>
 31
 321. Go to the [release page](https://github.com/MichaelMure/git-bug/releases/latest) and download the appropriate binary for your system.
 332. Copy the binary anywhere in your PATH
 343. Rename the binary to `git-bug` (or `git-bug.exe` on windows)
 35
 36That's all !
 37
 38</details>
 39
 40<details><summary>Linux packages</summary>
 41
 42* [Archlinux (AUR)](https://aur.archlinux.org/packages/?K=git-bug)
 43
 44</details>
 45
 46<details><summary>go get (unstable)</summary>
 47
 48```shell
 49go get -u github.com/MichaelMure/git-bug
 50```
 51
 52If it's not done already, add golang binary directory in your PATH:
 53
 54```bash
 55export PATH=$PATH:$(go env GOROOT)/bin:$(go env GOPATH)/bin
 56```
 57
 58</details>
 59
 60## CLI usage
 61
 62Create a new identity:
 63
 64```
 65git bug user create
 66```
 67
 68Create a new bug:
 69
 70```
 71git bug add
 72```
 73
 74Your favorite editor will open to write a title and a message.
 75
 76You can push your new entry to a remote:
 77```
 78git bug push [<remote>]
 79```
 80
 81And pull for updates:
 82```
 83git bug pull [<remote>]
 84```
 85
 86List existing bugs:
 87```
 88git bug ls
 89```
 90
 91Filter and sort bugs using a [query](doc/queries.md):
 92```
 93git bug ls "status:open sort:edit"
 94```
 95
 96You 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).
 97
 98## Interactive terminal UI
 99
100An interactive terminal UI is available using the command `git bug termui` to browse and edit bugs.
101
102![Termui recording](misc/termui_recording.gif)
103
104## Web UI (status: WIP)
105
106You can launch a rich Web UI with `git bug webui`.
107
108![Web UI screenshot 1](misc/webui1.png)
109![Web UI screenshot 2](misc/webui2.png)
110
111This web UI is entirely packed inside the same go binary and serve static content through a localhost http server.
112
113The web UI interact with the backend through a GraphQL API. The schema is available [here](graphql/).
114
115## Bridges
116
117### Importer implementations
118
119|                                                 | Github             | Launchpad          |
120| ----------------------------------------------- | :----------------: | :----------------: |
121| **incremental**<br/>(can import more than once) | :heavy_check_mark: | :x:                |
122| **with resume**<br/>(download only new data)    | :x:                | :x:                |
123| **identities**                                  | :heavy_check_mark: | :heavy_check_mark: |
124| identities update                               | :x:                | :x:                |
125| **bug**                                         | :heavy_check_mark: | :heavy_check_mark: |
126| comments                                        | :heavy_check_mark: | :heavy_check_mark: |
127| comment editions                                | :heavy_check_mark: | :x:                |
128| labels                                          | :heavy_check_mark: | :x:                |
129| status                                          | :heavy_check_mark: | :x:                |
130| title edition                                   | :heavy_check_mark: | :x:                |
131| **automated test suite**                        | :x:                | :x:                |
132
133### Exporter implementations
134
135Todo !
136
137## Internals
138
139Interested by how it works ? Have a look at the [data model](doc/model.md) and the [internal bird-view](doc/architecture.md).
140
141## Misc
142
143- [Bash completion](misc/bash_completion)
144- [Zsh completion](misc/zsh_completion)
145- [PowerShell completion](misc/powershell_completion)
146- [ManPages](doc/man)
147
148## Planned features
149
150- media embedding
151- exporter to github issue
152- extendable data model to support arbitrary bug tracker
153- inflatable raptor
154
155## Contribute
156
157PRs accepted. Drop by the [Gitter lobby](https://gitter.im/the-git-bug/Lobby) for a chat or browse the issues to see what is worked on or discussed.
158
159Developers unfamiliar with Go may try to clone the repository using "git clone". Instead, one should use:
160
161```shell
162go get -u github.com/MichaelMure/git-bug
163```
164
165The git repository will then be available:
166
167```shell
168# Note that $GOPATH defaults to $HOME/go
169$ cd $GOPATH/src/github.com/MichaelMure/git-bug/
170```
171
172You can now run `make` to build the project, or `make install` to install the binary in `$GOPATH/bin/`.
173
174To work on the web UI, have a look at [the dedicated Readme.](webui/Readme.md)
175
176
177## Contributors :heart:
178
179This project exists thanks to all the people who contribute.
180<a href="https://github.com/MichaelMure/git-bug/graphs/contributors"><img src="https://opencollective.com/git-bug/contributors.svg?width=890&button=false" /></a>
181
182
183## Backers
184
185Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/git-bug#backer)]
186
187<a href="https://opencollective.com/git-bug#backers" target="_blank"><img src="https://opencollective.com/git-bug/tiers/backer.svg?width=890"></a>
188
189
190## Sponsors
191
192Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/git-bug#sponsor)]
193
194<a href="https://opencollective.com/git-bug/sponsor/0/website" target="_blank"><img src="https://opencollective.com/git-bug/tiers/sponsor/0/avatar.svg"></a>
195<a href="https://opencollective.com/git-bug/sponsor/1/website" target="_blank"><img src="https://opencollective.com/git-bug/tiers/sponsor/1/avatar.svg"></a>
196<a href="https://opencollective.com/git-bug/sponsor/2/website" target="_blank"><img src="https://opencollective.com/git-bug/tiers/sponsor/2/avatar.svg"></a>
197<a href="https://opencollective.com/git-bug/sponsor/3/website" target="_blank"><img src="https://opencollective.com/git-bug/tiers/sponsor/3/avatar.svg"></a>
198<a href="https://opencollective.com/git-bug/sponsor/4/website" target="_blank"><img src="https://opencollective.com/git-bug/tiers/sponsor/4/avatar.svg"></a>
199<a href="https://opencollective.com/git-bug/sponsor/5/website" target="_blank"><img src="https://opencollective.com/git-bug/tiers/sponsor/5/avatar.svg"></a>
200<a href="https://opencollective.com/git-bug/sponsor/6/website" target="_blank"><img src="https://opencollective.com/git-bug/tiers/sponsor/6/avatar.svg"></a>
201<a href="https://opencollective.com/git-bug/sponsor/7/website" target="_blank"><img src="https://opencollective.com/git-bug/tiers/sponsor/7/avatar.svg"></a>
202<a href="https://opencollective.com/git-bug/sponsor/8/website" target="_blank"><img src="https://opencollective.com/git-bug/tiers/sponsor/8/avatar.svg"></a>
203<a href="https://opencollective.com/git-bug/sponsor/9/website" target="_blank"><img src="https://opencollective.com/git-bug/tiers/sponsor/9/avatar.svg"></a>
204
205
206## License
207
208Unless otherwise stated, this project is released under the [GPLv3](LICENSE) or later license © Michael Muré.
209
210The git-bug logo by [Viktor Teplov](https://github.com/vandesign) is released under the [Creative Commons Attribution 4.0 International (CC BY 4.0)](misc/logo/LICENSE) license © Viktor Teplov.