mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-07-31 21:48:44 +00:00
* Moving config files to core/config * fix package names * fix package dependencies * linting fixes * more linting fixes * ran golangci-lint run --fix
41 lines
1.0 KiB
Go
41 lines
1.0 KiB
Go
package raw
|
|
|
|
import (
|
|
validation "github.com/go-ozzo/ozzo-validation"
|
|
"github.com/runatlantis/atlantis/server/core/config/valid"
|
|
)
|
|
|
|
type Workflow struct {
|
|
Apply *Stage `yaml:"apply,omitempty" json:"apply,omitempty"`
|
|
Plan *Stage `yaml:"plan,omitempty" json:"plan,omitempty"`
|
|
PolicyCheck *Stage `yaml:"policy_check,omitempty" json:"policy_check,omitempty"`
|
|
}
|
|
|
|
func (w Workflow) Validate() error {
|
|
return validation.ValidateStruct(&w,
|
|
validation.Field(&w.Apply),
|
|
validation.Field(&w.Plan),
|
|
validation.Field(&w.PolicyCheck),
|
|
)
|
|
}
|
|
|
|
func (w Workflow) toValidStage(stage *Stage, defaultStage valid.Stage) valid.Stage {
|
|
if stage == nil || stage.Steps == nil {
|
|
return defaultStage
|
|
}
|
|
|
|
return stage.ToValid()
|
|
}
|
|
|
|
func (w Workflow) ToValid(name string) valid.Workflow {
|
|
v := valid.Workflow{
|
|
Name: name,
|
|
}
|
|
|
|
v.Apply = w.toValidStage(w.Apply, valid.DefaultApplyStage)
|
|
v.Plan = w.toValidStage(w.Plan, valid.DefaultPlanStage)
|
|
v.PolicyCheck = w.toValidStage(w.PolicyCheck, valid.DefaultPolicyCheckStage)
|
|
|
|
return v
|
|
}
|