in pipegen/config/config.go [126:185]
func convertPipeline(pipeline *proxy.Pipeline) *Pipeline {
steps := make([]Step, len(pipeline.Steps))
for is, step := range pipeline.Steps {
steps[is] = Step{Name: getStringValue(step.Name),
Type: getStringValue(step.Type),
Command: getStringValue(step.Command),
Agents: step.AgentQueryRules,
Branches: getStringValue(step.BranchConfiguration),
ArtifactPaths: getStringValue(step.ArtifactPaths),
Timeout: getIntValue(step.TimeoutInMinutes),
Concurrency: getIntValue(step.Concurrency),
Parallelism: getIntValue(step.Parallelism),
EnvironmentVariables: step.Env,
}
}
teams := make([]TeamAccess, len(pipeline.Details.Access))
for i, t := range pipeline.Details.Access {
teams[i] = TeamAccess{
Slug: t.TeamSlug,
AccessLevel: t.AccessLevel}
}
schedules := make([]Schedule, len(pipeline.Details.Schedules))
for i, s := range pipeline.Details.Schedules {
schedules[i] = Schedule{
Description: s.Label,
CronInterval: s.Cronline,
BuildMessage: s.Message,
Commit: s.Commit,
Branch: s.Branch,
EnvironmentVariables: s.Env,
Enabled: s.Enabled}
}
repo := Repository{
RepositoryUrl: getStringValue(pipeline.Repository),
DefaultBranch: getStringValue(pipeline.DefaultBranch),
BranchLimiting: getStringValue(pipeline.BranchConfiguration)}
provider := Provider{
WebhookUrl: getStringValue(pipeline.Provider.WebhookURL),
Settings: pipeline.Provider.Settings}
skip := BuildSkipping{
SkipIntermediateBuilds: pipeline.SkipQueuedBranchBuilds,
SkipBranches: getStringValue(pipeline.SkipBueuedBranchBuildsFilter),
CancelIntermediateBuilds: pipeline.CancelRunningBranchBuilds,
CancelBranches: getStringValue(pipeline.CancelRunningBranchBuildsFilter)}
return &Pipeline{Name: getStringValue(pipeline.Name),
Slug: getStringValue(pipeline.Slug),
Description: getStringValue(pipeline.Description),
Public: pipeline.Details.Public,
Steps: steps,
Configuration: getStringValue(pipeline.Configuration),
Teams: teams,
Schedules: schedules,
BuildSkipping: &skip,
Repository: &repo,
Provider: &provider}
}