forgejo 
- Description
- Emacs Forgejo Front-end
- Latest
- forgejo-0.2.1.0.20260514.192820.tar (.sig), 2026-May-14, 380 KiB
- Maintainer
- Thanos Apollo <public@thanosapollo.org>
- Website
- https://codeberg.org/thanosapollo/emacs-forgejo
- Browse ELPA's repository
- CGit or Gitweb
- All Dependencies
- keymap-popup (.tar)
- Badge
To install this package from Emacs, use package-install or list-packages.
Full description
Emacs front-end for Forgejo instances (Codeberg, self-hosted, etc.).
- Browse, filter, and view issues and pull requests
- Submit and merge PRs via AGit-Flow push options
- Full code review workflow with threaded comments
- Watch rules with per-repo filter polling and desktop notifications
- Label, assignee, and milestone management
SQLitecache for instant display and offline usage- Multi-host support with per-instance token configuration
#and@completion in composition buffers (gfm-mode)- Repository settings editor
1. Installation
1.1. use-package
emacs-forgejo is available via GNU ELPA.
(use-package forgejo
:ensure t
:custom
(forgejo-hosts '(("https://codeberg.org")))
;; Example watch rules
(forgejo-watch-rules
'(("thanosapollo/emacs-forgejo")
("guix/guix" . "state:open label:team-emacs")
("*" . "author:<your username>")))
(forgejo-watch-filter-default "read:no"))
Visit a codeberg/forgejo repo and call M-x forgejo-vc. It will
automatically handle the token creation.
2. Usage
From any git repository with a Forgejo remote, C-x v f
(forgejo-vc) opens the Forgejo popup menu. All available
commands are listed there. Press h in any view to see keybindings.
M-x forgejo opens the top-level menu for repo search, issue/PR
browsing, and watch list.
2.1. Watch rules
Poll specific repos for new issues/PRs on a timer:
(setq forgejo-watch-rules
'("thanosapollo/emacs-forgejo" ;; all for thanosapollo/emacs-forgejo repo
("guix/guix" . "state:open label:team-emacs") ;; all state:open with team-emacs label
("*" . "author:<your-username>"))) ;; everything in the db with author:<your-username>
(forgejo-watch-mode 1)
A bare string watches everything in that repo. A cons cell applies a
filter query. * expands to all repos in your local cache.
M-x forgejo-watch-list to browse watched items. The initial filter
is controlled by forgejo-watch-filter-default:
(setq forgejo-watch-filter-default "read:no")
Supported prefixes: state:, read:, type:, author:, label:, search:.
2.2. Composition
Composition buffers use gfm-mode for markdown highlighting with #
completion for issue/PR references and @ for user mentions.
(add-hook 'forgejo-compose-hook #'flyspell-mode)
2.3. Buffer setup
All Forgejo buffers call forgejo-buffer-setup-functions after
setup, passing the buffer as an argument:
(setq forgejo-buffer-setup-functions
(list (lambda (buf)
(with-current-buffer buf
(display-line-numbers-mode -1)))))
2.4. Bug reference integration
forgejo-browse-mode intercepts Forgejo URLs and opens them in
forgejo.el instead of the browser. Hook it into bug-reference-mode
so that #N references in source files, ERC, and vc/magit buffers open
directly in forgejo.el:
(add-hook 'bug-reference-mode-hook #'forgejo-browse-mode) (add-hook 'bug-reference-prog-mode-hook #'forgejo-browse-mode)
Enable bug-reference-mode in buffers where you want #N references
(see Bug Reference):
(add-hook 'prog-mode-hook #'bug-reference-prog-mode) (add-hook 'log-view-mode-hook #'bug-reference-mode) (add-hook 'vc-annotate-mode-hook #'bug-reference-mode) (add-hook 'magit-revision-mode-hook #'bug-reference-mode)
You can also toggle it per-buffer with M-x forgejo-browse-mode.
For ERC/rcirc, configure #N references per channel:
(add-to-list 'bug-reference-setup-from-irc-alist
'("#guix" "Libera.Chat"
"\\(#\\([0-9]+\\)\\)\\>"
"https://codeberg.org/guix/guix/issues/%s"))
3. Contributing
This project is part of GNU ELPA.
Contributions of ~15 lines or more require FSF copyright assignment.
See #17 for more.
4. Screenshots
Figure 1: issue list
Figure 2: issue view
Figure 3: review comment
Figure 4: review log
Figure 5: review thread
Old versions
| forgejo-0.2.1.0.20260514.65954.tar.lz | 2026-May-14 | 61.0 KiB |
| forgejo-0.2.1.0.20260513.163307.tar.lz | 2026-May-13 | 60.2 KiB |
| forgejo-0.2.1.0.20260512.210825.tar.lz | 2026-May-13 | 60.1 KiB |
| forgejo-0.2.0.0.20260510.61626.tar.lz | 2026-May-10 | 60.0 KiB |
| forgejo-0.1.7.0.20260509.144156.tar.lz | 2026-May-09 | 57.6 KiB |
| forgejo-0.1.6.0.20260507.163649.tar.lz | 2026-May-07 | 52.8 KiB |
| forgejo-0.1.5.0.20260507.4243.tar.lz | 2026-May-07 | 52.2 KiB |
| forgejo-0.1.4.0.20260504.135909.tar.lz | 2026-May-04 | 51.7 KiB |
| forgejo-0.1.3.0.20260503.93347.tar.lz | 2026-May-03 | 50.6 KiB |
| forgejo-0.1.2.0.20260430.191702.tar.lz | 2026-Apr-30 | 50.5 KiB |