package models
import (
"time"
"github.com/bluesky-social/indigo/atproto/syntax"
)
// Repo names the repository a site deploys from.
type Repo struct {
Did string
Name string
Knot string
Rkey string
RepoDid string
}
type SiteDeployStatus string
const (
SiteDeployStatusSuccess SiteDeployStatus = "success"
SiteDeployStatusFailure SiteDeployStatus = "failure"
)
type SiteDeployTrigger string
const (
SiteDeployTriggerConfigChange SiteDeployTrigger = "config_change"
SiteDeployTriggerPush SiteDeployTrigger = "push"
SiteDeployTriggerManual SiteDeployTrigger = "manual"
)
// ParseSiteDeployTrigger maps a wire trigger name to its constant; empty is not a trigger.
func ParseSiteDeployTrigger(name string) (SiteDeployTrigger, bool) {
switch t := SiteDeployTrigger(name); t {
case SiteDeployTriggerConfigChange, SiteDeployTriggerPush, SiteDeployTriggerManual:
return t, true
default:
return "", false
}
}
type SiteDeploy struct {
Id int64
RepoDid syntax.DID
Branch string
Dir string
CommitSHA string
Status SiteDeployStatus
Trigger SiteDeployTrigger
Error string
CreatedAt time.Time
}