This package provides a completing-read
menu to match existing bugs
and another menu to act on a bug.
Good entrypoints and canidates for assigned keybindings are
git-bug-menu
git-bug-new-from-line
A nearly novel[fn:1] feature is M-x git-bug-new-from-line
. This function will create a new git-bug from a line like
# TODO: a commented note for later in the source code
and then add the bug reference to the line, so the outcome of running the function is an updated line like
# TODO(gb#abcd123): a commented note for later in the source code
[fn:1] VS code’s github-issue-integration also does similiar. Are there other implementations?
git-bug-menu | Choose a bug and than action each from a list. |
git-bug-new-from-line | Create a bug from TODO/FIX/BUG: on the current line. |
git-bug-edit-at-line | Edit first match of gb#1234567 on the current line. |
git-bug-ls | Use ‘git bug‘’s built-in ‘org-mode‘ format to display all bugs. |
From git-bug-menu-actions-alist
show | Create a new buffer to show this ‘bugid‘’s title and it’s comments. |
edit | Edit bug ‘BUGID‘ in temporary buffer. |
insert | Insert gb# issue number at current position in buffer. |
close | Close issue. |
comment | Create a new comment for bug ‘BUGID‘ in via EDITOR. |
open | Reopen issue. |
rm | Remove issue. |
Here’s an example install and configure for ~/.emacs.d/init.el
using use-package-vc-install
(Emacs 30)
(use-package git-bug
;; in MELPA, for directly from git, use
; :vc (:url "https://github.com/WillForan/emacs-git-bug")
:ensure t
:bind
("C-c b m" . git-bug-menu)
("C-c b c" . git-bug-new-from-line)
:config
(evil-leader/set-key "#" #'git-bug-menu)
(evil-leader/set-key "3" #'git-new-from-line))
git-bug-edit-bug
and git-bug-comment-new
use git-bug
’s built in edit-from-cli setup (gb#cc5fa60). This works well in emacs if
- emacs is launched like
emacs --daemon
or you’ve runserver-start
from within EDITOR
on system environment has been set to e.g.emacsclient -c
- magit-todos
magit-todo-list
- hl-todo
hl-todo-rgrep
- magit/forge’s “topics and posts”
forge-list-topics
- visual studio code’s github-issue-integration
- git-bug alternatives/similiar projects
- Radicle’s Collaborative OBject (COB) issues
- bugs everywhere (via forgejo discussion)
- fossil has issue tracking built-in (as well as a wiki, forum, chat)
- Friendly Forge Format (forgejo/f3; JSON schema) (cf. forgefed activitypub; XML bug exchange format c. 2009)
- other lists: dist-bugs, wikipedia/Bug_tracking_systems
Getting started with git-bug
can be tricky (git-bug#1331), especially pointing to ssh keys (git-bug#1023) and initializing an identity (git bug user new
).
Those can both be accomplished like
# ssh-agent git identity for pushing (cf. gpg-agent)
if [ -z "$SSH_AUTH_SOCK" ]; then
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_ed25519
fi
# $PWD/.git/config [git-bug] 'identity' section.
# implicit defaults made explicit, plus gravatar
git_email=$(git config get user.email)
avatar_url=https://www.gravatar.com/avatar/$(tr -d '\n' <<< ${git_email,,} | sha256sum | cut -f1 -d' ')
git config get git-bug.identity ||
git bug user new \
-n "$(git config get user.name)"\
-e "$git_email" \
-a "$avatar_url"
Putting the issues here for fun. Fun that costs an easily out of date and/or high-churn readme.
git-bug bug -s open -f json |
jq -r '.[]|[.create_time.time[0:10], .id[0:7], .title]|@tsv' |
sort -nr
date | bug | title |
---|---|---|
2025-09-01 | 59e13c7 | git-bug-new-from-line should include file:line when creating |
2025-08-31 | cc5fa60 | refactor new and edit so edit can reuse temp buffer of new |
2025-08-31 | 7b002ae | need to exit and return when bug is saved. also regexp is wrong? |
2025-08-30 | e7a8b7c | edit message color like commit-message |
2025-08-30 | 94e034c | git-bug porcelain for magit-forge |
2025-08-30 | 6588bc5 | list of git-bug project directories for overview of all page |
2025-08-30 | 3a93c2e | minor-mode for clickable buttons, company/cornfu completion? |