# Changelog All notable changes to this project will be documented in this file. ## [Unreleased] ### Added - Parameterized all hardcoded configuration values as Ansible variables in `defaults/main.yml`: - `gitea_runner_docker_image` — Docker image name (default: `gitea/runner`) - `gitea_runner_data_dir` — Runtime data directory - `gitea_runner_config_dir` — Config directory - `gitea_runner_binary_path` — Binary install path - `gitea_runner_prune_until` — Prune age filter - `gitea_runner_prune_schedule` — Prune timer schedule - `gitea_runner_prune_label` — Docker label for pruning - `gitea_runner_service_restart_sec` — systemd restart interval - `gitea_runner_service_user` — Service user - `gitea_runner_log_level` — Runner log level - `gitea_runner_container_label` — Container label - `gitea_runner_file` — Runner metadata file - `docker_gpg_key_path` — Docker GPG key path - Added `console_scripts` entry point in `pyproject.toml` (`grm = "gitea_runner_manager.cli:cli"`). - Added shared `molecule/common/prepare.yml` to eliminate duplicated prepare playbooks. - Extracted repeated systemd availability check into `tasks/systemd_check.yml`. - Added idempotence checks to both Molecule scenarios (`default` and `binary`). - Comprehensive README overhaul with Architecture, Configuration, Development, Testing, and Troubleshooting sections. ### Changed - Replaced legacy runner terminology with `gitea_runner` / `gitea-runner` / `Gitea Runner`. - Updated default Docker image from `gitea/gitea_runner` to `gitea/runner`. - `Makefile` now uses the installed `grm` console script instead of `python grm`. - `docker_update.yml`: reordered `register` before `changed_when` for readability. - `binary_update.yml`: removed redundant explicit service restart (handler handles this idempotently). ### Removed - Deleted `setup.py` (redundant with `pyproject.toml`). - Deleted `grm` shell entrypoint script (replaced by `console_scripts`). - Deleted `initial-plan.md` and `tests/integration/test_provision.py` (dead code). - Removed empty `__init__.py` files from `tests/` directories. - Removed unused `runner_validated` fact from `validate.yml`. - Removed duplicate `prune.yml` and `integration_test.yml` includes from `docker_mode.yml` and `binary_mode.yml` (now included once from `main.yml`). ### Fixed - Molecule idempotence failures caused by non-idempotent service restart in `binary_update.yml`. - Missing `/etc/docker` directory handling in Molecule tests. - `ansible-lint` formatting warnings (yaml empty lines). - Verify playbooks now explicitly load role defaults so parameterized variables are available during verification.