feat: implement proto-gen platform

- Config loader with env var expansion and validation
- SQLite database with tasks and toolchain_versions tables
- Gitea REST API client for repository and branch operations
- K8s client for Job lifecycle management (with noop fallback for local dev)
- REST API: tasks CRUD, retry, plugins, version management
- Worker/scheduler with polling, concurrency control, and job tracking
- Static frontend: generate, tasks, settings pages
- Toolchain images: Go and Node.js Dockerfiles with entrypoint scripts
- Helm chart with deployment, service, configmap, ingress, PVC
- Multi-stage Dockerfile for service
- Unit tests for config, database, gitclient, k8s, api, worker
- E2E tests for idempotency, version switch, failure recovery
This commit is contained in:
2026-08-10 16:54:30 +08:00
parent cc478bdad4
commit 4e467e1136
43 changed files with 3179 additions and 1 deletions
+21
View File
@@ -0,0 +1,21 @@
package gitclient
type Repository struct {
Name string `json:"name"`
FullName string `json:"full_name"`
Private bool `json:"private"`
Empty bool `json:"empty"`
}
type Branch struct {
Name string `json:"name"`
Commit string `json:"commit"`
}
type GitClient interface {
ListRepositories(owner string) ([]Repository, error)
CreateRepository(owner, name, description string, private bool) (*Repository, error)
GetRepository(owner, name string) (*Repository, error)
ListBranches(owner, repo string) ([]Branch, error)
GetBranch(owner, repo, branch string) (*Branch, error)
}