Forgejo monthly report - February 2026

The monthly report is intended to provide an overview of activities in the Forgejo space over the past month. If you would like to help, please get in touch via the chatroom or take part in the ongoing discussions.

Releases

Forgejo runner v12.7.0

Forgejo runner v12.7.0 was released on February 18th, bringing a major new multiple-connection feature that increases the flexibility of Forgejo runner deployments along with a handful of bug-fixes in podman container shutdown, chained reusable workflows, parsing of output variables, and log buffer flushing on host-based executors & LXC.

The new multiple connection capability can be used across multiple servers, such as receiving jobs from Codeberg and a private Forgejo instance. It can also be utilized to register a runner multiple times to the same Forgejo server, connecting to multiple different organizations, users, or repositories.

This capability has been built with a fully backward-compatible design. If you have no interest in using multiple connections, then no changes are required in the runner installation.

Multiple connections are the first feature to be delivered in a line of enhancements coming as contributors on the runner work to deprecate the .runner state file to simplify registration and management of Forgejo runner. As more enhancements are ongoing in this area, updated documentation showing multiple registrations hasn’t yet been completed - so here’s a quick guide on how to use the new capability:

  1. When a runner is registered with a Forgejo server, it creates a .runner state file that contains some information about the server that the runner is connecting to:

    {
      "WARNING": "This file is automatically generated by forgejo-runner. Do not edit it manually unless you know what you are doing. Removing this file will cause act runner to re-register as a new runner.",
      "id": 13,
      "uuid": "a605af85-59cd-4643-b519-5dd694c5789f",
      "name": "my-runner",
      "token": "c0524ac29795ed0ba433229d0e22b37b4ac713c0",
      "address": "https://example.com/",
      "labels": ["docker:docker://node:current-bookworm", "bare-metal:host"]
    }
  2. The new multiple connection capability is enabled simply by moving this information into the runner’s config file:

    # other config data: [log, runner, ...]
    
    server:
      connections:
        forgejo1:
          url: https://example.com/
          uuid: a605af85-59cd-4643-b519-5dd694c5789f
          token: c0524ac29795ed0ba433229d0e22b37b4ac713c0
          labels:
            - docker:docker://node:current-bookworm
            - bare-metal:host
  3. Remove the .runner file after server.connections is configured.

  4. Ensure that the forgejo-runner daemon command is run with -c /path/to/config.yaml CLI option, as config files are optional and are not loaded from a default path.

  5. To add more connections, either consolidate multiple existing .runner files from different installations into server.connections, or, use forgejo-runner register to create a new .runner file and then repeat step 2 and 3.

More detailed information on the options available are documented in the example config file, including: how to set different labels for each connection, and how to use an external file for the token secret value for enhanced security.

Forgejo Helm chart v16

Two minor releases were made to the v16 version of the Forgejo Helm chart. The first minor release introduced improvements to HttpRoute and included dependency updates. The second minor release added support for the Gateway-API with the addition of the tcpRoute.

Notable Pull Requests

Contributing

A new make command was introduced to ensure that the same go backend checks are performed locally on the developer’s computer and in the Forgejo’s CI runs. Contributors are asked to run make pr-go before submitting a pull request.

Infrastructure

Renovate Operator

Renovate workflows were converted to use Renovate Operator. This allows on-demand jobs via checkboxes on pull requests (PRs) or dashboard issues. Behind the scene this works via webhooks from Forgejo to the Renovate Operator.

Outage

On February 25, Hetzner - where the Forgejo infrastructure is hosted - experienced an outage due to a core router fault. This also caused a short outage of the Forgejo infrastructure.

Issue and code indexing

Code and issue indexing was activated on code.forgejo.org with OpenSearch. As a result, searching for code is now possible, and searching for issues should be easier.

Other

FOSDEM 2026

Forgejo contributors attended FOSDEM 2026 early in the month. Forgejo was involved in a few presentations:

Following in-person discussions at FOSDEM among some available contributors, a new proposal for changes to Forgejo’s user research, design, and implementation workflow was published and discussed.

FOSDEM also enabled Forgejo contributors to start discussions on new funding opportunities with a large public institution, and the community is collecting input on which projects may be applicable for scaling up development efforts.

We forge

Forgejo is a community of people who contribute in an inclusive environment. We forge on an equal footing, by reporting a bug, voicing an idea in the chatroom or implementing a new feature.

The following list of contributors is intended to reflect this diversity and to acknowledge all the contributions made over the past two months. If you are missing, please ask for an update.