A slight OT, but since I've been working on it for the past weeks for dayjob, I wrote a local first, very simple, Forgejo client library for now [0]. It has no UI but I assume writing one for ncurses or gtk would be doable.
I hope one day it will be complete enough to make a cli client for codeberg. Cheers, giacomo [0]: https://codeberg.org/fishinthecalculator/giorgio Il 28 luglio 2026 02:58:41 CEST, Maxim Cournoyer <[email protected]> ha scritto: >Hi Simon, > >I won't rehash your points, it seems our experience has a lot in common. > >I'd just like to point the better (still far from perfect) Forgejo >client I've used so far, emacs-forgejo. Contrary to emacs-fj, it keeps >a local sqlite database of all the issues, and you can hopefully (I >haven't tried) consult them offline, in a tabular view (no pesky pages!) >similar to what could be done with Debbugs. Unfortunately, the author >(Thanos) recently decided against using Forgejo (and switched to Nix), >so the tool is currently abandoned :-/. > >Anyway, you may want to try it; it's still packaged in Guix for >now. It's at least useful to browse issues and configured via >bug-reference; below is, I think, the relevant configurations (it's a >dump, probably there's too many things there, but hopefully you find >something useful): > >--8<---------------cut here---------------start------------->8--- >> >;;; Forgejo & Codeberg > >;;; fj.el >(require 'fj) >(setopt fj-user "apteryx") > >;;; Visual-fill-column. >(require 'visual-fill-column) >(add-hook 'visual-line-mode-hook #'visual-fill-column-for-vline) > >;;; Emacs-forgejo. >(require 'forgejo) >(add-hook 'forgejo-watch-hooks #'forgejo-alert-notify) >(setopt forgejo-buffer-setup-functions > (list (lambda (buffer) > (unless (derived-mode-p 'tabulated-list-mode) > (visual-line-mode t)))) > forgejo-watch-rules '(("*"))) > >> >;;; Bug-reference, Debbugs & friends. >(require 'bug-reference) >(add-hook 'erc-mode-hook #'bug-reference-mode) >(add-hook 'gnus-mode-hook #'bug-reference-mode) >(add-hook 'gnus-summary-mode-hook #'bug-reference-mode) >(add-hook 'gnus-article-mode-hook #'bug-reference-mode) >(add-hook 'magit-revision-mode #'bug-reference-mode) >(add-hook 'prog-mode-hook #'bug-reference-prog-mode) > >(let* ((bug-regexp (rx (seq (?? "bug") > (group (seq (? "guix/guix") (or "#" "!")) > (group (one-or-more digit)))))) > (make-url-format (lambda (org repo) > (lambda () > (let ((matched-text (match-string 0)) > (number (match-string 2))) > (if (string-search "bug#" matched-text) > (concat "https://issues.guix.gnu.org/" > number) > (format "https://codeberg.org/%s/%s/issues/%s" > org repo number)))))) > (guix-url-format (funcall make-url-format "guix" "guix")) > (guile-url-format (funcall make-url-format "guile" "guile"))) > ;; For ERC. > (add-to-list 'bug-reference-setup-from-irc-alist > (list "#guix" "Libera.Chat" bug-regexp guix-url-format) > (list "#guile" "Libera.Chat" bug-regexp guile-url-format)) > ;; For Gnus. > (add-to-list 'bug-reference-setup-from-mail-alist > (list (rx "guixotic.coop") ;catch-all > nil bug-regexp guix-url-format)) > (add-to-list 'bug-reference-setup-from-mail-alist > (list (rx (seq "lists." (* anything) "guile")) > nil bug-regexp guile-url-format))) > >(require 'debbugs) >(require 'debbugs-browse) >(add-hook 'bug-reference-mode-hook #'debbugs-browse-mode) >(add-hook 'bug-reference-prog-mode-hook #'debbugs-browse-mode) >(add-hook 'log-view-mode-hook #'debbugs-browse-mode) ;for vc-chage-log >(add-hook 'bug-reference-mode-hook #'forgejo-browse-mode) >(add-hook 'bug-reference-prog-mode-hook #'forgejo-browse-mode) >(add-hook 'log-view-mode-hook #'forgejo-browse-mode) ;for vc-chage-log > > >;; The following allows Emacs Debbugs user to open the issue directly within >;; Emacs. >(setq debbugs-browse-url-regexp > (rx "http" (zero-or-one "s") "://" > (or "debbugs" "issues.guix" "bugs") > ".gnu.org" (one-or-more "/") > (group (zero-or-one "cgi/bugreport.cgi?bug=")) > (group-n 3 (one-or-more digit)))) > >;; Reduce the number of prompts with 'M-x debbugs-gnu'. >(setq debbugs-gnu-default-packages '("guix" "guix-patches")) > >;; Show feature requests. >(setq debbugs-gnu-default-severities > '("serious" "important" "normal" "minor" "wishlist")) >--8<---------------cut here---------------end--------------->8--- > >The review comments being made near-useless after force-pushing has >occurred at least twice, invalidating some of my time-intensive >reviews. Is there a Forgejo issue tracking that problem already? > >-- >Thanks, >Maxim >
