Status Update 2025-10
status-updateHey,
Welcome to my monthly yearly status update. Considering that quite some time has passed since my last blog post, a lot has happened. I will try my best to do better in the future and post a bit more consistently.
For Codeberg I have continued development of cibot to ease the administrative burden of controlling access to their Woodpecker CI instance. Users interested in the CI
are expected to create an issue and list for which projects they would like to use this service. cibot will now iterate through these projects and check if they fit Codeberg’s requirements (projects need to be public and appropriately licensed).
The bot will create a new post with a summary of its analysis, e.g. what license a project is most likely using.
Furthermore, cibot has an auto-approval feature now: If the option is enabled and every single project fits Codeberg’s criteria, the user will automatically get access to their CI.
ntfy-alertmanager’s development has slowed down a bit. The most interesting addition is probably Markdown formatting, which was recently added to the Android app of ntfy. Markdown alerts look much more concise. To ease the usage, I have also added template support, so that the body of the notification can be customized.
Besides this, I have fixed some issues or implemented a few small feature requests. WrenIX has upstreamed his Helm chart.
The last ntfy feature I am waiting on is notification updates - which is being worked on in this PR. It would enable resolved alerts to update/overwrite the original alert. Once this is done I will probably consider ntfy-alertmanager to be feature-complete and tag the “v1.0.0” release.
After this I will focus completely on a new alerting bridge, which will encompass all of Codeberg’s alerting demands. Right now at least Matrix messages and phone calls are planned. I am contemplating adding ntfy support here as well or mapping issues to alerts, so that people can be assigned to them.
For hut, I have implemented the much requested --count flag, which can be used to specify the minimum number of resources (e.g. build jobs) that should be fetched. Until then the only way to use pagination was to scroll through the pager, now it can be integrated in scripts. To prevent hut from DoSing the server, I have added a backoff between consecutive API requests.
At the moment this is quite hacky and I hope that sourcehut will offer a native way in the future to request a certain number of resources.
hut’s output for different commands (hut todo ticket list, hut lists patchset list) was made a bit smarter as well. Only actionable items (e.g. open tickets) will be displayed by default. To declutter the output further, the ticket/patchset status will only be printed if the resources have differing ones.
ACL handling for pages was added and there are some fixes for hut’s project config (see my previous blog post for more information). Simon Martin has contributed multiple patches to make hut’s commands more consistent - thanks again for the great help!
bibliodrina is a new project of mine that allows to manage bookmarks in a browser agnostic way.
I am often switching computers or browsers: When riding a train I prefer to use qutebrowser, which uses the screen real estate better than Firefox and works completely fine without a mouse.
So I searched for a tool, which could synchronize bookmarks between computers and that is not bound to a specific browser or cloud solution. I also wanted to integrate a dmenu-like tool with it, since I have come to rely on the fuzzy search of fzf for a multitude of use cases: Passwords, application launcher, navigating folders, …
Since I could not find a project satisfying all of my needs, I decided to work on bibliodrina. Currently it consists of a cli, a qutebrowser user script and a Firefox extension which uses native messaging to talk to the cli.
It saves bookmarks in an SQLite database, which can easily be synced between computers (Syncthing, Nextcloud). Bookmarks can be selected via a dmenu compatible tool like fuzzel and filtered on categories.
On a more personal note, I have recently switched from using nvim to helix as an editor and for my shell from zsh to fish. In the past, I really liked to spend a lot of time on polishing my configuration and customizing them to my needs with plugins. For example, I wrote my own custom vim status bar.
But nowadays I prefer programs with a simple configuration and sane, usable defaults. Both fish and helix offer simple auto-completion out of the box.
I managed to write a small fish plugin with completions within one week of using fish. On the other hand, I don’t even know anymore what some of the code I wrote for my zsh dotfiles years ago does.
It feels like I’ve become more productive, even though my tooling is no longer perfectly tailored to me.