Add Gitea, Cloudflare DNS, and Kubernetes deployer adapters following hexagonal architecture. These enable automated project provisioning: - Git repository creation/management via Gitea - DNS record management via Cloudflare - Container deployment to Kubernetes Includes domain models, ports, handlers, and Woodpecker CI webhook integration for automated deployments on push. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
41 lines
953 B
Go
41 lines
953 B
Go
// Package domain contains pure domain models with no external dependencies.
|
|
package domain
|
|
|
|
import "time"
|
|
|
|
// Repo represents a git repository.
|
|
type Repo struct {
|
|
ID int64
|
|
Owner string
|
|
Name string
|
|
FullName string // owner/name
|
|
Description string
|
|
Private bool
|
|
CloneSSH string // git@git.threesix.ai:owner/name.git
|
|
CloneHTTP string // https://git.threesix.ai/owner/name.git
|
|
HTMLURL string // https://git.threesix.ai/owner/name
|
|
CreatedAt time.Time
|
|
UpdatedAt time.Time
|
|
}
|
|
|
|
// DeployKey represents an SSH key for repository access.
|
|
type DeployKey struct {
|
|
ID int64
|
|
RepoID int64
|
|
Title string
|
|
PublicKey string
|
|
ReadOnly bool
|
|
CreatedAt time.Time
|
|
}
|
|
|
|
// RepoWebhook represents a webhook configuration on a repository.
|
|
type RepoWebhook struct {
|
|
ID int64
|
|
RepoID int64
|
|
URL string
|
|
Secret string
|
|
Events []string
|
|
Active bool
|
|
HookType string // gitea, woodpecker, etc.
|
|
}
|