# 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](https://gitea.com/gitea/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 ```bash 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: ```protobuf 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 ```go 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}`, })) ``` ## Related Projects | Project | Description | |---------|-------------| | [gitcaddy/gitea](https://git.marketally.com/gitcaddy/gitea) | GitCaddy Gitea fork with AI-friendly enhancements | | [gitcaddy/act_runner](https://git.marketally.com/gitcaddy/act_runner) | Runner with capability detection | ## Upstream This project is a fork of [code.gitea.io/actions-proto-go](https://gitea.com/gitea/actions-proto-go). We aim to contribute enhancements back to upstream where appropriate. ## License MIT License - see [LICENSE](LICENSE) for details.