Git Bug: Distributed, Offline-First Bug Tracker Embedded in Git, with Bridges
109 comments
·May 13, 2025AceJohnny2
michaelmure
Yes, this really meant to be some sort of framework for storing entities in git, handle the conflicts, and let you buld easily your own tool (or add more features to git-bug).
See also https://github.com/git-bug/git-bug/blob/master/doc/design/da... and https://github.com/git-bug/git-bug/blob/master/entity/dag/ex...
I'd love to see this used in the wild for other use cases.
imoverclocked
Is there a registry of namespaces to avoid collisions?
mirekrusin
Technically you could solve collisions through single indirection convention ie 'refs/manifest' which describes refs used with their "schema", "version" etc. If you want to decorate your repo with something, you'd register it there. This way you wouldn't have to keep global convention registry for different projects not to step on each other.
farhanhubble
Wow!So this can be used for full blown project management too.
alchemist1e9
Could you expand on how you see that working? combining these extensions is what I’m guessing but I’d be super interested in hearing how it might work.
If all information for an asynchronous development process could be stored into git and distributed by it, this would be a very good idea for many projects.
michaelmure
So for example, git-bug already has a PR to add support for a project board: https://github.com/git-bug/git-bug/pull/843
The same way, one could add support for code review (aka PRs), todo list, custom entities that your workflow need (say, tracking documentation or custom requirement) ... It can also be entirely outside of the development process.
alasr
Git Bug screenshots:
- TUI recording (GIF): https://github.com/git-bug/git-bug/blob/master/doc/assets/tu...
- Web comments (PNG): https://github.com/git-bug/git-bug/blob/master/doc/assets/we...
- Web feed (PNG): https://github.com/git-bug/git-bug/blob/master/doc/assets/we...
hungryhobbit
While I like the idea of tool consolidation, bug trackers aren't just a tool for the engineers. At most companies I've worked at, the support team, designers, QA team, managers, etc. all use the bug tracker on a daily basis.
It sounds like you can "bridge" to somehow show the tracker outside Engineering, but then you're having to do work around the consolidation, and I'd imagine the result won't be as nice as a full-featured tracker designed for everyone to use.
But, I am curious to hear from someone who has actually used this thing.
chungy
Fossil[0] has bug tracking as a standard feature, and through the HTTP role-based authentication, you are able to set up users with different privileges; for instance, being able to read and write the bug tracker without the ability to push new code.
ndegruchy
+1 for this. I love having a self-contained, syncable GitHub-lite. It uses SQLite for the format, too, which makes it easy to discover the internals.
It just needs some more 'modern' themes
debugnik
> It uses SQLite for the format
My chance at sharing Fossil is not Relational. The two times it's been submitted to HN it didn't gain votes.
https://fossil-scm.org/home/doc/trunk/www/fossil-is-not-rela...
sudoforge
hey! maintainer here.
git-bug has a web ui that you can run on your git server, for example, that can be accessed through a browser.
it's fairly limited in functionality right now (create, comment on, and manage issues), but one of my goals is to refactor it to improve coverage of the existing features, and to add support for things like:
- authenticated access
- unauthenticated/anonymous access (e.g. a public, external contributor/user)
- issue privacy levels
- sprints, projects, report generation
layer8
Improved user interfaces can always be added on top of the CLI/library functionality, and that’s the more flexible approach. Everyone can use and/or build their favorite UI, like people do with Git itself.
The monolithic web-first (often web-only) systems are a bit of a modern bane, you’re stuck with whatever user interface the one company/maintainer deems appropriate.
baq
It’s expensive to maintain more front ends than you absolutely require. Web+mobile is one too many already.
bluGill
All those users are why bug trackers are annoying. I don't care about those fields "those other people" are demanding, why do I need to fill them out. Mean while they don't care about the fields that are critical for me and don't want to fill them out.
pixl97
There's no I in team...
Or to put it another way, those other 'useless' fields that take minutes may save the company hours of time in places that you don't see.
account42
More like they justify some middle management busybody's salary.
MonkeyClub
> There's no I in team...
But there's U and I in unity!
/s aside, you have a valid point there: just because "I" find the field useless, it doesn't mean that it isn't out to actual good use downstream.
baq
Every job has a part people don't like that's necessary. The company you work for pays you money to fill the fields out, you fill them out, you get paid.
XorNot
That's why I do it. That doesn't explain why they even need to be there.
For example every project code drop down has this experience: my manager tells me what project code to put everything against, then I always pick the same option. Sometimes I've not been granted access to that option and waste a bunch of time getting that turned on.
At no point was any part of this necessary, because I neither defined the ticket, or could select the project code for myself, but we're all engaged in an elaborate game pretending I had agency over it.
account42
Or you could show initiative and improve inefficient processes instead of blindly following "how things are done".
devrandoom
This is a bug tracker. What you are describing is much closer to a project management tool, just to make the difference clear.
dcrazy
Those should be tightly integrated, if not the same tool.
nine_k
It depends on who manages the project. In an open-source project, those will likely also be engineering types, not non-technical managers.
It's hard to make a product that's all things to all people, and it's wise to make a product that has a well-understood, if more narrow, audience.
whateveracct
To some people, engineers without project management doesn't make any sense.
hosh
I think that is more useful for communities whose members don't have reliable, always-on networks, rather than workflows within companies.
crabbone
Designers, QA, support and managers are typically already using a VCS, and usually it's Git. And if they don't, this is as good as ever a chance to start.
From QA perspective, which is the one the closest to me: I wanted such a tool for many years, and even though I haven't tried this specific one, I endorse the idea with both of my hands.
In the context of QA, it's always a problem to coordinate between test development, feature development, feature description, and tracking the work progress. All bug trackers I used to date are awful at it. This has a potential to solve at least part of the problem by being physically connected to the work done by either development or QA, or, ideally, both. The holy grail here is the ability to determine what tests to run in response to a commit without making it too much of a burden on the committer.
Tests can easily be the most expensive ongoing activity a development company may undertake. In this context, being able to avoid running useless but expensive tests is very desirable.
eikenberry
Maybe the tool isn't intended for use in commercial environments. There is plenty of work done outside a those environments where this tool might be a better fit. E.g. most free software projects don't have all those other teams interacting with the bug trackers. To put it another way, this seems to fill a similar niche as Github's bug tracker and not Jira.
layer8
Some screenshots would be nice. I found this one [0] of the TUI from 2018, but not much else.
sudoforge
maintainer here - this is great feedback!
i recently rewrote the README because i felt like its previous iteration was a bit _too_ dense. i may have gone a bit overboard on moving things :)
FWIW, the screenshots you're looking for currently live in: https://github.com/git-bug/git-bug/blob/bd936650ccf44ca33cf9...
bognition
honestly cleaning up the Readme and documentation would go a very long way, right now all the information feels fragmented behind all of the little pages. I clicked into the documentation and clicked the first link presented to me on each page and 5 clicks or so in I was on the command line docs but I hadn't seen anything that gave me a high level overview of what git-bug is, what it does, why I want to use it, etc...
I understand that documentation can be hard and you need docs for newbies and long time users, but as a newbie I cannot for the life of me figure out what this is.
binary132
This would be amazing as a Magit module for Emacs. I don’t relish the idea of using it in a terminal alongside Emacs while using Git from inside Emacs. Is there a lower-level interface that Magit could provide a porcelain for, maybe?
sudoforge
i have no understanding, beyond that of a lexical nature, what a "magit module" is. i'm a (neo)vim user, and heavy terminal junkie, and if i wanted to build a vim plugin for git-bug, that plugin would likely be shelling out to the command line (as git-bug doesn't expose an independent API today -- it's only started when you start the web ui).
is a "magit module" roughly synonymous with a vim plugin? if so, then would shelling out to the CLI work?
ericfrederich
I personally hate how all these platforms like GitHub, GitLab, BitBucket, etc slapped a centralized relational database to manage issues, comments, merge requests, etc next to a distributed de-centralized system like Git.
I especially hate how they've integrated CI/CD into the Git platforms.
I loathe the fact that Microsoft has tied their AI to their Git platform.
I want my CI/CD to be agnostic. I want my AI to be agnostic. I want my issues, MRs, comments, etc to be decentralized and come along for the ride when I clone a repo.
photonthug
The local first approach to dev tools and ecosystems does seem to be on the way out.
The pressures for this aren’t even explicitly corporate interest anymore, a lot of it is driven by non-software-experts who are kind of forced to participate in software dev (e.g. your friendly data science colleague who used to be, say, in material science or astrophysics), which is completely understandable. But more concerneing is the trend of actual software engineers who dislike consoles, terminal programs, and basically don’t believe much in understanding their tools.
You see this all the time with basic stuff from git UIs to kubernetes in IDEs. Productivity isn’t really the issue, although it’s always mentioned as an excuse, there’s just a big appeal to reducing any/every cognitive load no matter what the practical cost is for losing understanding/fluency. To give people the benefit of the doubt though, maybe this pressure is ultimately still corporate though and it started with the call for “full stack” devs, continued with devops/platform engineering etc, where specialists are often actively discouraged. Laziness and a higher tolerance for ignoring details may be a necessary virtue if the market forces everyone to be a generalist.
spit2wind
Have you tried Fossil? https://fossil-scm.org/home/doc/trunk/www/index.wiki
WD-42
This is incredibly cool. I love seeing local first software starting to make a comeback. Github is becoming painful to use, even on a fast connection.
binary132
The fact that nearly all of our source code is not only hosted on proprietary platforms that can (and do) delete it any time they like, but is ALSO integrated with many of our build systems so that it’s not trivially relocatable blows my mind every time I think about it.
kgeist
If you want to be serious about this, use a self-hosted CI/CD server such as TeamCity, and then mirror all dependencies on a local git server (Go supports GOPROXY variable, but you can also probably fiddle with local DNS and self-signed certs, so that any mention of github.com forwarded you to the local server). This way, it's more controllable: if github.com is down or some repo is deleted, the CI/CD server won't even notice it.
binary132
I know there are workarounds, I’m talking about the general principle or the situation at large.
binary132
It’s very weird seeing the coping / seething about a useful tool like this even in HN comments. People have really drunk the proverbial kool-aid / joined the dark side.
haukilup
> It’s very weird seeing the coping / seething about a useful tool like this even in HN comments. People have really drunk the proverbial kool-aid / joined the dark side.
It’s unclear to me what you mean.
baq
Maybe because it’s less useful than you think. Companies and large orgs won’t be using it because they like centralized and on the small side your competition is a bunch of TODO files, not a bug tracker.
dannymi
There's also https://github.com/dspinellis/git-issue which has much fewer dependencies.
silverliver
This is really neat! I know Microsoft would never integrate this into github, but what about integrating this other less vendor-lockin-ey scm platforms like forgejo or gitlab? It might be a much better fit then retrofitting activity-pub (current efforts in this space).
Imagine having repository issues seamlessly propagated and replicated across all your git mirrors.
sudoforge
git-bug is built to be portable - today, the way git-bug interacts with other platforms which do not support reading from its namespaces directly is through bridges.
right now, git-bug has built-in bridges for github, gitlab, and jira. i am working on the design for a more modular system in which bridges can be built by anybody and used as "plugins".
really, though, the better, long-term goal is to work with $PLATFORMS to have them update their issue tracker to use git-bug's issues (that is, read from and publish to the refs/bugs namespace using git-bug). there's a bit missing right now to make this easy, but it's something that's very much top of mind as i think about git-bug's future.
rzwitserloot
I've been yelling 'omg why doesnt someone build a ticketing system on the basis of git, having a separate 'root' (no-parent git commit that is at the bottom of a git tree; technically a git repo can have more than one), with most of the conversation happening in git commit form' - for YEARS.
This is wildly exciting.
wahern
FWIW, this project made its first release in 2018. =) It's been posted to HN several times, though under its previous project URL, https://github.com/MichaelMure/git-bug (see https://news.ycombinator.com/from?site=github.com/michaelmur...)
sudoforge
you aren't alone! linus thinks we need this, too:
yogsototh
I had the same idea for a talk a long time ago the result is https://git.esy.fun/yogsototh/gpm
I never used it seriously, but the concepts are easy enough to grasp.
Have a separate dedicated branch that contains all the metadata of your project. Like issues, todo-list, review comments, etc...
Hopefully, something decentralised like this could become more popular maybe.
tiffanyh
Interesting that GPL3 was selected for this, while Git itself is GPL2 (these are incompatible licenses)
chungy
It'd only really matter if git-bug were to become part of the core Git features. Perhaps one or the other could relicense if that became a desirable outcome.
I have doubt it'll happen. GitHub/GitLab culture is pretty strong, few seem interested in having distributed project management features.
chrishill89
I use this to note potential issues in my copy of the Git project. For outright bugs though I report them to the project.
sudoforge
awesome to see a user in the wild! if you weren't aware, you can publish your git-bug issues to the project's issue tracker, assuming that it's on one of the supported bridges today (github, gitlab, jira).
the bridges exist within git-bug to support adoption of the tool and interop with existing platforms.
`git bug bridge pull` and `git bug bridge push` use the bridge's API, and don't attempt to pull from or push to the git remote.
chrishill89
Thanks. I can’t push it to the issue tracker since they don’t have one. Bug reports go to the mailing list.
sudoforge
hrm... what's your current workflow like? if there's anything you think git-bug could be doing to make that workflow easier, would you mind hopping in our matrix channel [1], or opening an issue [2]?
I love seeing these projects make use of the wide-open namespace/references that git provides (outside of the basic `refs/heads` for git branches and `refs/tags` for tags). It looks like they store the data in the `bugs` namespace [1] (so refs/bugs/foo).
Other projects also make use of alternate namespaces. The oft-forgotten built-in "git notes" puts stuff in the `refs/notes/` namespace (specifically in `refs/notes/commits`). Gerrit uses the virtual `refs/for/` namespace for receiving commits for review, stores project config in `refs/meta/config`, and stores User data in `refs/users/` in a special repo [2]. I'm sure others do interesting things.
Alternate uses of git's DAG model are fascinating.
[1] https://github.com/git-bug/git-bug/blob/bd936650ccf44ca33cf9...
[2] https://gerrit-review.googlesource.com/Documentation/config-...