Files
atlantis/server/core/config/raw/workflow.go
Sarvar Muminov 7a927c050b Moving config files to core/config (#2036)
* Moving config files to core/config

* fix package names

* fix package dependencies

* linting fixes

* more linting fixes

* ran golangci-lint run --fix
2022-02-03 11:06:04 -08:00

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
}