Git-issue is a bug tracker based on git.
Git is a great tool to versioning source but also to store everything. Git is designed like a file system, or if you prefer buzz words, you can see it like a nosql database. A nosql database over a FS?.
Sorry, I digress. So why do not use it to store issues? In fact, use git automatically makes your issues tracker versioned and distributed, like your code.
Of course, it is not the first distributed issue tracker but git-issue exist because the other projects doesn't cover all these objectives:
- fully based on git ;
- minimal dependencies ;
- fully tested.
Place the single file src/git-issue in your path.
For example:
$ git clone https://github.com/sanpii/git-issue.git
$ mkdir -p ~/.local/bin
$ ln -s $(pwd)/git-issue/src/git-issue ~/.local/bin
$ echo 'export PATH=$PATH:$HOME/.local/bin' >> ~/.bashrc
Git-issue reuse git configuration (user name, editor, …) but provide some options.
The branch name used for store the issues. issues by default.
Remote name to publish issues. origin by default.
Color use to display id. blue bold by default.
Color use to display metadata name. yellow bold by default.
The branch where HTML pages as generated. gh-pages by default.
The URL where showdow.js was download. https://raw.githubusercontent.com/coreyti/showdown/1.9.1/dist/showdown.min.js by default.
The URL where zepto was download. http://zeptojs.com/zepto.min.js by default.
The URL where twitter bootstrap was download. http://netdna.bootstrapcdn.com/bootstrap/3.4.1 by default.
The charset specified in the content type. UTF-8 by default.
The title of the page. Issues tracker by default.
This is the required first step:
$ git issue init
$ git issue new --title='A new issue' 'A long description'
Issue #1 created.
If you don't specify a description, the issue is opened in an editor unless the
--no-edit
is added.
$ git issue show 1
title: Issue title
status: new
assign:
tags:
milestone:
type:
A long description
$ git issue list
1: Issue title
By default, only unclosed issues are listed. You can use filter on status, title, tags, milestone or type:
$ git issue list --status=close
Or inverted filter:
$ git issue list --status=~accepted
Or multiple values:
$ git issue list --status='new|accepted'
$ git issue edit 1
Git issue open the issue with your preferred editor. Edit, save and quit. The issue is automatically committed.
Or you can rapidly edit issue metadata:
$ git issue edit --status=done 1
And you can more rapidly close an issue:
$ git issue close 1
$ git issue delete 1
Bidirectional synchronize:
$ git issue sync
Issues synced.
$ git issue html
$ git checkout gh-pages
$ git push -u originn gh-pages
You can see the result for this repository here.
Clone this repository and use git-issue on it. After creating an issue, send me a pull request.