2
0

7 Commits

Author SHA1 Message Date
663a52eded ci: Disable Go cache to prevent hanging on Gitea runners
All checks were successful
CI / build (push) Successful in 6s
Release / release (push) Successful in 7s
The actions/setup-go@v5 cache feature tries to upload to GitHub's
cache infrastructure, which doesn't exist on self-hosted Gitea
runners. This causes jobs to hang indefinitely during the post step.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 05:30:00 -05:00
b093af7905 Revert module path to code.gitea.io/actions-proto-go
Some checks failed
CI / build (push) Has been cancelled
Release / release (push) Has been cancelled
Keep original module path for compatibility with replace directives
in downstream projects.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 05:13:07 -05:00
02070eddb5 Add professional README for GitCaddy fork
Some checks are pending
CI / build (push) Waiting to run
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
372fd8fdc5 Add CI/CD workflows for build and release
Some checks are pending
CI / build (push) Waiting to run
Release / release (push) Successful in 7m41s
- Add CI workflow for build/test on push and PR
- Add release workflow to create releases on tags

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 05:00:06 -05:00
40c7487409 Fix import paths in connect generated files
Update import paths from code.gitea.io/actions-proto-go to
git.marketally.com/gitcaddy/actions-proto-go in connect files.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 04:58:05 -05:00
9580480f90 Update module path to git.marketally.com/gitcaddy/actions-proto-go 2026-01-10 04:48:09 -05:00
07088bedbc Add CapabilitiesJson field to DeclareRequest
This allows runners to report their capabilities (OS, arch, docker,
tools, etc.) as a JSON string when declaring themselves to Gitea.

This enables AI-friendly workflow generation by providing structured
capability information that AI tools can query before writing workflows.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 04:46:26 -05:00
4 changed files with 146 additions and 3 deletions

28
.gitea/workflows/ci.yml Normal file
View File

@@ -0,0 +1,28 @@
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.21'
cache: false
- name: Build
run: go build ./...
env:
GOPRIVATE: git.marketally.com
- name: Test
run: go test ./...
env:
GOPRIVATE: git.marketally.com

View File

@@ -0,0 +1,29 @@
name: Release
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.21'
cache: false
- name: Build
run: go build ./...
env:
GOPRIVATE: git.marketally.com
- name: Create Release
uses: softprops/action-gh-release@v1
with:
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,2 +1,80 @@
# proto-go
# 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.

View File

@@ -282,8 +282,9 @@ type DeclareRequest struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
Labels []string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"`
Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
Labels []string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"`
CapabilitiesJson string `protobuf:"bytes,3,opt,name=capabilities_json,json=capabilitiesJson,proto3" json:"capabilities_json,omitempty"`
}
func (x *DeclareRequest) Reset() {
@@ -332,6 +333,13 @@ func (x *DeclareRequest) GetLabels() []string {
return nil
}
func (x *DeclareRequest) GetCapabilitiesJson() string {
if x != nil {
return x.CapabilitiesJson
}
return ""
}
type DeclareResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache