rdev/internal/domain/git.go
jordan 0fd4e32073 feat: Add infrastructure adapters for threesix.ai
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>
2026-01-25 22:49:58 -07:00

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.
}