Emil SimeonovandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 31edf866f3 GRM-46: fix: auto_merge handles single-token workflow (self-approval)
Gitea rejects self-approval when the CI bot uses the same token as
the PR author. The has_approval_review function now falls back to
allowing merge when no REQUEST_CHANGES reviews exist, even without
an APPROVE. This makes the auto-merge workflow functional in a
single-token (agent) workflow.

Branch protection required_approvals set to 0 (enforced by
auto_merge.py instead, which checks for REQUEST_CHANGES).

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-06-22 01:23:24 +02:00

Gitea Runner Manager (GRM)

A lean command-line tool to automate the installation, configuration, and lifecycle management of Gitea Actions runners on Arch Linux, Ubuntu, and Debian hosts.

Each runner runs in an isolated rootless Docker environment under a dedicated system user, enabling multiple runners to operate in parallel on the same host without conflicts.

Pronunciation: GRM is short for Gitea Runner Manager, but say it like ГРЪМ (roughly "GRUM") — the Bulgarian word for thunder. An open-source project from Oblachno (облачно means cloudy in Bulgarian).

CI License: GPL-3.0 Coverage Tests Docs Code Quality Version Python

Quick Start

git clone https://git.oblachno.oblachno.fyi/oblachno-oss/grm.git
cd grm
make setup
cp .env.example .env  # Edit with your Gitea URL and tokens
grm install 192.168.1.10 --user ubuntu --key ~/.ssh/id_ed25519 --name prod-runner

Tokens: You need two tokens from your Gitea instance — a registration token to register runners, and an admin API token for optional post-install verification. See Getting Started for detailed setup instructions.

Documentation

Full documentation lives on the GRM Wiki.

User Documentation

Technical Documentation

License

GPL-3.0

S
Description
This is the git repository of the Gitea Runner Manager.
Readme GPL-3.0
1.4 MiB
v0.20.0
Latest
2026-08-09 11:16:07 +00:00
Languages
Python 87.6%
Jinja 6.8%
Makefile 4.6%
Shell 1%