From 19f3c214288647b61bc730bb0b1d400fc59c74b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Mur=C3=A9?= Date: Fri, 27 Dec 2019 14:47:07 +0100 Subject: [PATCH 1/5] add a how-to to explain usage with Github --- doc/howto-github.md | 61 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 doc/howto-github.md diff --git a/doc/howto-github.md b/doc/howto-github.md new file mode 100644 index 000000000..cd1855b01 --- /dev/null +++ b/doc/howto-github.md @@ -0,0 +1,61 @@ +# How-to: Read/write offline Github issues with git-bug + +[git-bug](https://github.com/MichaelMure/git-bug) is a standalone distributed bug-tracker that is embedded in git. In short, if you have a git repository you can use it to store bugs alongside your code (without mixing them though!), push and pull them to/from a normal git remote to collaborate. + +Bridges with other bug-trackers are first-class citizen in `git-bug`. Notably, they are bidirectional, incremental and relatively fast. This means that a perfectly valid way to use `git-bug` is as a sort of remote for Github where you synchronize all the issues of a repository to later read and edit them and then propagate your changes back to Github. + +This has several upsides: +- works offline, including edition +- browsing is pretty much instant +- you get to choose the UI you prefer between CLI, interactive terminal UI or web UI +- you get a near complete backup in case Github is down or no longer fit your needs + +## Installation + +Follow the [installation instruction](https://github.com/MichaelMure/git-bug#install). The simplest way is to download a pre-compiled binary from [the latest release](https://github.com/MichaelMure/git-bug/releases/latest) and to put it anywhere in your `$PATH`. + +Check that `git-bug` is properly installed by running `git bug version`. If everything is alright, the version of the binary will be displayed. + +## Configuration + +1. From within the git repository you care about, run `git bug bridge configure` and follow the wizard's steps: + 1. Choose `github`. + 1. Type a name for the bridge configuration. As you can configure multiple bridges, this name will allow you to choose when there is an ambiguity. + 1. Setup the remote Github project. The wizard is smart enough to inspect the git remote and detect the potential project. Otherwise, enter the project URL like this: `https://github.com/MichaelMure/git-bug` + 1. Setup an authentication token. You can either use the interactive token creation, enter your own token or select an existing token, if any. +1. Run `git bug bridge pull` and let it run to import the issues and identities. +1. Find your imported identity by running `git bug user ls` and select it as your own with `git bug user adopt ` + +## Basic usage + +You can interact with `git-bug` through the command line (see the [Readme](../README.md#cli-usage) for more details): +```bash +# Create a new bug +git bug add +# List existing bugs +git bug ls +# Display a bug's detail +git bug show +# Add a new comment +git bug comment +# Push everything to a normal git remote +git bug push [] +# Pull updates from a git remote +git bug pull [] +``` + +In particular, the key commands to interact with Github are: +```bash +# Replicate your changes to the remote bug-tracker +git bug bridge push [] +# Retrieve updates from the remote bug-tracker +git bug bridge pull [] +``` + +The command line tools are really meant for programmatic usage or to integrate `git-bug` into your editor of choice. For day to day usage, the recommended way is the interactive terminal UI. You can start it with `git bug termui`: + +![termui recording](../misc/termui_recording.gif) + +For a richer UI more user friendly UI, `git-bug` propose a web UI (read-only at the moment). You can start it with `git bug webui`: + +![web UI screenshot](../misc/webui2.png) From 710d85664e6cf933d2b1691871a4246b8e7eceb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Mur=C3=A9?= Date: Fri, 27 Dec 2019 20:12:11 +0100 Subject: [PATCH 2/5] doc: fix typos --- doc/howto-github.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/howto-github.md b/doc/howto-github.md index cd1855b01..44f24927f 100644 --- a/doc/howto-github.md +++ b/doc/howto-github.md @@ -18,7 +18,7 @@ Check that `git-bug` is properly installed by running `git bug version`. If ever ## Configuration -1. From within the git repository you care about, run `git bug bridge configure` and follow the wizard's steps: +1. From within the git repository you care about, run `git bug bridge configure` and follow the wizard's steps: 1. Choose `github`. 1. Type a name for the bridge configuration. As you can configure multiple bridges, this name will allow you to choose when there is an ambiguity. 1. Setup the remote Github project. The wizard is smart enough to inspect the git remote and detect the potential project. Otherwise, enter the project URL like this: `https://github.com/MichaelMure/git-bug` @@ -56,6 +56,6 @@ The command line tools are really meant for programmatic usage or to integrate ` ![termui recording](../misc/termui_recording.gif) -For a richer UI more user friendly UI, `git-bug` propose a web UI (read-only at the moment). You can start it with `git bug webui`: +For a richer and more user friendly UI, `git-bug` proposes a web UI (read-only at the moment). You can start it with `git bug webui`: ![web UI screenshot](../misc/webui2.png) From 8365c6334edea95a38b9b7d0184be7c537c2bee9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Mur=C3=A9?= Date: Sun, 1 Mar 2020 12:50:22 +0100 Subject: [PATCH 3/5] doc: refresh the github howto --- README.md | 2 +- doc/howto-github.md | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 873c62e17..be65b99e8 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ :construction: This is now more than a proof of concept, but still not fully stable. Expect dragons and unfinished business. :construction: -## Install +## Installation
Pre-compiled binaries diff --git a/doc/howto-github.md b/doc/howto-github.md index 44f24927f..672aa8b28 100644 --- a/doc/howto-github.md +++ b/doc/howto-github.md @@ -2,8 +2,16 @@ [git-bug](https://github.com/MichaelMure/git-bug) is a standalone distributed bug-tracker that is embedded in git. In short, if you have a git repository you can use it to store bugs alongside your code (without mixing them though!), push and pull them to/from a normal git remote to collaborate. +

+ Native workflow +

+ Bridges with other bug-trackers are first-class citizen in `git-bug`. Notably, they are bidirectional, incremental and relatively fast. This means that a perfectly valid way to use `git-bug` is as a sort of remote for Github where you synchronize all the issues of a repository to later read and edit them and then propagate your changes back to Github. +

+ Bridge workflow +

+ This has several upsides: - works offline, including edition - browsing is pretty much instant @@ -12,7 +20,7 @@ This has several upsides: ## Installation -Follow the [installation instruction](https://github.com/MichaelMure/git-bug#install). The simplest way is to download a pre-compiled binary from [the latest release](https://github.com/MichaelMure/git-bug/releases/latest) and to put it anywhere in your `$PATH`. +Follow the [installation instruction](https://github.com/MichaelMure/git-bug#installation). The simplest way is to download a pre-compiled binary from [the latest release](https://github.com/MichaelMure/git-bug/releases/latest) and to put it anywhere in your `$PATH`. Check that `git-bug` is properly installed by running `git bug version`. If everything is alright, the version of the binary will be displayed. @@ -22,9 +30,9 @@ Check that `git-bug` is properly installed by running `git bug version`. If ever 1. Choose `github`. 1. Type a name for the bridge configuration. As you can configure multiple bridges, this name will allow you to choose when there is an ambiguity. 1. Setup the remote Github project. The wizard is smart enough to inspect the git remote and detect the potential project. Otherwise, enter the project URL like this: `https://github.com/MichaelMure/git-bug` + 1. Enter your login on Github 1. Setup an authentication token. You can either use the interactive token creation, enter your own token or select an existing token, if any. 1. Run `git bug bridge pull` and let it run to import the issues and identities. -1. Find your imported identity by running `git bug user ls` and select it as your own with `git bug user adopt ` ## Basic usage From e53d7c6561fd4f0f7f96f67ea14c64f1333bd6cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Mur=C3=A9?= Date: Sun, 1 Mar 2020 12:51:41 +0100 Subject: [PATCH 4/5] add workflow diagrams --- misc/diagrams/Readme.md | 1 + misc/diagrams/bridge_workflow.png | Bin 0 -> 24172 bytes misc/diagrams/native_workflow.png | Bin 0 -> 26582 bytes 3 files changed, 1 insertion(+) create mode 100644 misc/diagrams/Readme.md create mode 100644 misc/diagrams/bridge_workflow.png create mode 100644 misc/diagrams/native_workflow.png diff --git a/misc/diagrams/Readme.md b/misc/diagrams/Readme.md new file mode 100644 index 000000000..837a32128 --- /dev/null +++ b/misc/diagrams/Readme.md @@ -0,0 +1 @@ +The source of those diagrams is on draw.io. Couldn't find a good way to export :( diff --git a/misc/diagrams/bridge_workflow.png b/misc/diagrams/bridge_workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..18fb8a77ad232ca492305358a38a351c9572b454 GIT binary patch literal 24172 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Ð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 literal 0 HcmV?d00001 From f82ad38671ab42690d83675166e5eefa03d74d85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Mur=C3=A9?= Date: Sun, 1 Mar 2020 14:36:59 +0100 Subject: [PATCH 5/5] howto: link to other ressources --- doc/howto-github.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/doc/howto-github.md b/doc/howto-github.md index 672aa8b28..a441d15d6 100644 --- a/doc/howto-github.md +++ b/doc/howto-github.md @@ -18,6 +18,8 @@ This has several upsides: - you get to choose the UI you prefer between CLI, interactive terminal UI or web UI - you get a near complete backup in case Github is down or no longer fit your needs +Note: at the moment, Gitlab and Jira are also fully supported. + ## Installation Follow the [installation instruction](https://github.com/MichaelMure/git-bug#installation). The simplest way is to download a pre-compiled binary from [the latest release](https://github.com/MichaelMure/git-bug/releases/latest) and to put it anywhere in your `$PATH`. @@ -67,3 +69,12 @@ The command line tools are really meant for programmatic usage or to integrate ` For a richer and more user friendly UI, `git-bug` proposes a web UI (read-only at the moment). You can start it with `git bug webui`: ![web UI screenshot](../misc/webui2.png) + +## Want more? + +If you interested to read more about `git-bug`, have a look at the followings: +- [the project itself, with a more complete readme](https://github.com/MichaelMure/git-bug) +- [a bird view of the internals](https://github.com/MichaelMure/git-bug/blob/master/doc/architecture.md) +- [a description of the data model](https://github.com/MichaelMure/git-bug/blob/master/doc/model.md) + +Of course, if you want to contribute the door is way open :-) \ No newline at end of file