actions-proto-go/README.md
logikonline 02070eddb5
Some checks are pending
CI / build (push) Waiting to run
Add professional README for GitCaddy fork
Document capability reporting feature, usage examples,
and integration with GitCaddy ecosystem.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 05:03:20 -05:00

2.7 KiB

GitCaddy Actions Proto

Protocol buffer definitions for communication between Gitea Actions runners and the Gitea server.

This is a GitCaddy fork of code.gitea.io/actions-proto-go with enhanced capability reporting support.

Overview

This package provides the protobuf-generated Go code for the Gitea Actions runner protocol. It defines the RPC services and message types used for:

  • Runner registration and declaration
  • Task fetching and execution
  • Log streaming and status updates
  • Runner capability reporting (GitCaddy enhancement)

Installation

go get git.marketally.com/gitcaddy/actions-proto-go

GitCaddy Enhancements

Runner Capability Reporting

This fork adds the CapabilitiesJson field to the DeclareRequest message, enabling runners to report their capabilities to the Gitea server:

message DeclareRequest {
  string version = 1;
  repeated string labels = 2;
  string capabilities_json = 3;  // NEW: JSON-encoded runner capabilities
}

The capabilities JSON includes:

  • OS and Architecture: Runtime environment details
  • Docker Support: Whether Docker/Podman is available
  • Shell Support: Available shells (bash, sh, powershell, etc.)
  • Tool Versions: Installed tools like Node.js, Go, Python, etc.
  • Feature Flags: Cache support, artifact handling, etc.
  • Limitations: Known constraints for AI workflow generation

Why This Matters

AI tools generating CI/CD workflows can query the Gitea API to discover runner capabilities before writing workflows, reducing trial-and-error iterations.

Usage

import (
    runnerv1 "git.marketally.com/gitcaddy/actions-proto-go/runner/v1"
    "git.marketally.com/gitcaddy/actions-proto-go/runner/v1/runnerv1connect"
)

// Create a client
client := runnerv1connect.NewRunnerServiceClient(httpClient, serverURL)

// Declare runner with capabilities
resp, err := client.Declare(ctx, connect.NewRequest(&runnerv1.DeclareRequest{
    Version:          "0.3.1",
    Labels:           []string{"ubuntu-latest", "docker"},
    CapabilitiesJson: `{"os":"linux","arch":"amd64","docker":true}`,
}))
Project Description
gitcaddy/gitea GitCaddy Gitea fork with AI-friendly enhancements
gitcaddy/act_runner Runner with capability detection

Upstream

This project is a fork of code.gitea.io/actions-proto-go. We aim to contribute enhancements back to upstream where appropriate.

License

MIT License - see LICENSE for details.