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:
@@ -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)
|
||||
}
|
||||
Reference in New Issue
Block a user