GitCaddy fork of act_runner with capability reporting for AI-friendly workflow generation
Go to file
GitCaddy e5fdaadbd2
All checks were successful
CI / build-and-test (push) Successful in 8s
feat: handle bandwidth test requests from server
- Update to actions-proto-go v0.5.7 with RequestBandwidthTest field
- Add SetBandwidthManager method to Poller
- Check FetchTaskResponse for bandwidth test request
- Include bandwidth in capabilities sent to server

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-11 15:29:21 +00:00
.gitea/workflows ci: Disable Go cache to prevent hanging on Gitea runners 2026-01-10 05:30:00 -05:00
examples Update examples/kubernetes/dind-docker.yaml to reflect recent changes to Dockerfile (#633) 2025-01-26 02:10:17 +00:00
internal feat: handle bandwidth test requests from server 2026-01-11 15:29:21 +00:00
scripts feat: docker env vars for ephemeral and once (#685) 2025-05-07 15:43:05 +00:00
.editorconfig Add .editorconfig and .gitattributes (#186) 2023-05-13 23:51:22 +08:00
.gitattributes Add .editorconfig and .gitattributes (#186) 2023-05-13 23:51:22 +08:00
.gitignore Support basic, dind and dind-rootless as multiple kinds of images (#619) 2024-11-06 03:15:51 +00:00
.golangci.yml ci(lint): refactor code for clarity and linting compliance (#289) 2023-07-13 01:10:54 +00:00
.goreleaser.checksum.sh checksum and compress 2023-03-18 01:58:21 -04:00
.goreleaser.yaml ci: release binary for linux/loong64 (#756) 2025-10-21 17:42:08 +00:00
build.go Support cache (#25) 2023-02-28 23:39:30 +08:00
Dockerfile fix(dockerfile): Pin docker dind images to version 28, as version 29 has breaking changes in the API that are currently causing problems with the act fork of Gitea (#769) 2025-11-25 14:40:27 +00:00
go.mod feat: handle bandwidth test requests from server 2026-01-11 15:29:21 +00:00
go.sum feat: handle bandwidth test requests from server 2026-01-11 15:29:21 +00:00
LICENSE Add license 2022-11-24 15:36:16 +08:00
main.go Refactor to new framework (#98) 2023-04-04 21:32:04 +08:00
Makefile Remove duplicate assignment of DIST (#777) 2025-12-26 00:38:38 +00:00
README.md Add professional README for GitCaddy fork 2026-01-10 05:03:21 -05:00
renovate.json5 Add renovate config (#408) 2023-11-23 20:41:10 +00:00

GitCaddy Act Runner

A Gitea Actions runner with enhanced capability detection and reporting for AI-friendly workflow generation.

This is a GitCaddy fork of gitea.com/gitea/act_runner with runner capability discovery features.

Overview

Act Runner executes Gitea Actions workflows using act. This fork adds automatic capability detection, enabling Gitea to expose runner capabilities via API for AI tools to query before generating workflows.

Key Features

  • Capability Detection: Automatically detects OS, architecture, Docker support, available shells, and installed tools
  • Capability Reporting: Reports capabilities to Gitea server during runner declaration
  • Full Compatibility: Drop-in replacement for standard act_runner
  • Multi-Platform: Supports Linux, macOS, and Windows

Installation

Download Pre-built Binary

Download from Releases:

# Linux (amd64)
curl -L -o act_runner https://git.marketally.com/gitcaddy/act_runner/releases/download/v0.3.1-gitcaddy/act_runner-linux-amd64
chmod +x act_runner

# macOS (Apple Silicon)
curl -L -o act_runner https://git.marketally.com/gitcaddy/act_runner/releases/download/v0.3.1-gitcaddy/act_runner-darwin-arm64
chmod +x act_runner

Build from Source

git clone https://git.marketally.com/gitcaddy/act_runner.git
cd act_runner
make build

Quick Start

1. Enable Actions in Gitea

Add to your Gitea app.ini:

[actions]
ENABLED = true

2. Register the Runner

./act_runner register \
  --instance https://your-gitea-instance.com \
  --token YOUR_RUNNER_TOKEN \
  --name my-runner \
  --labels ubuntu-latest,docker

3. Start the Runner

./act_runner daemon

On startup, the runner will:

  1. Detect system capabilities (OS, arch, Docker, shells, tools)
  2. Report capabilities to Gitea via the Declare API
  3. Begin polling for jobs

Capability Detection

The runner automatically detects:

Category Examples
OS/Arch linux/amd64, darwin/arm64, windows/amd64
Container Runtime Docker, Podman
Shells bash, sh, zsh, powershell, cmd
Tools Node.js, Go, Python, Java, .NET, Rust
Features Cache support, Docker Compose

Example Capabilities JSON

{
  "os": "linux",
  "arch": "amd64",
  "docker": true,
  "docker_compose": true,
  "container_runtime": "docker",
  "shell": ["bash", "sh"],
  "tools": {
    "node": ["18.19.0"],
    "go": ["1.21.5"],
    "python": ["3.11.6"]
  },
  "features": {
    "cache": true,
    "docker_services": true
  },
  "limitations": []
}

Configuration

Create a config file or use command-line flags:

./act_runner generate-config > config.yaml
./act_runner -c config.yaml daemon

Example configuration:

log:
  level: info

runner:
  file: .runner
  capacity: 1
  timeout: 3h
  labels:
    - ubuntu-latest:docker://node:18-bullseye
    - ubuntu-22.04:docker://ubuntu:22.04

container:
  docker_host: ""
  force_pull: false
  privileged: false

cache:
  enabled: true
  dir: ~/.cache/actcache

Docker Deployment

docker run -d \
  --name act_runner \
  -e GITEA_INSTANCE_URL=https://your-gitea.com \
  -e GITEA_RUNNER_REGISTRATION_TOKEN=<token> \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v ./data:/data \
  gitcaddy/act_runner:latest

GitCaddy Integration

This runner is designed to work with the GitCaddy Gitea fork, which provides:

  • Runner Capabilities API (/api/v2/repos/{owner}/{repo}/actions/runners/capabilities)
  • Workflow Validation API for pre-flight checks
  • Action Compatibility Database for GitHub Actions mapping

How It Works


  act_runner                      Gitea                    AI Tool
      |                             |                         |
      |  Declare + Capabilities     |                         |
      |---------------------------->|                         |
      |                             |                         |
      |                             |  GET /api/v2/.../caps   |
      |                             |<------------------------|
      |                             |                         |
      |                             |  Runner capabilities    |
      |                             |------------------------>|
      |                             |                         |
      |                             |     Generates workflow  |
      |                             |     with correct config |

Project Description
gitcaddy/gitea Gitea with AI-friendly enhancements
gitcaddy/actions-proto-go Protocol definitions with capability support

Upstream

This project is a fork of gitea.com/gitea/act_runner. We contribute enhancements back to upstream where appropriate.

License

MIT License - see LICENSE for details.