MCPcopy Index your code
hub / github.com/coder/coder / Resolve

Method Resolve

cli/parameterresolver.go:106–122  ·  view source on GitHub ↗

Resolve gathers workspace build parameters in a layered fashion, applying values from various sources in order of precedence: 1. template defaults (if auto-accepting defaults) 2. cli parameter defaults (if auto-accepting defaults) 3. parameter file 4. CLI/ENV 5. source build 6. last build 7. preset

(inv *serpent.Invocation, action WorkspaceCLIAction, templateVersionParameters []codersdk.TemplateVersionParameter)

Source from the content-addressed store, hash-verified

104// 7. preset
105// 8. user input (unless auto-accepting defaults)
106func (pr *ParameterResolver) Resolve(inv *serpent.Invocation, action WorkspaceCLIAction, templateVersionParameters []codersdk.TemplateVersionParameter) ([]codersdk.WorkspaceBuildParameter, error) {
107 var staged []codersdk.WorkspaceBuildParameter
108 var err error
109
110 staged = pr.resolveWithParametersMapFile(staged)
111 staged = pr.resolveWithCommandLineOrEnv(staged)
112 staged = pr.resolveWithSourceBuildParametersInParameters(staged, templateVersionParameters)
113 staged = pr.resolveWithLastBuildParametersInParameters(staged, templateVersionParameters)
114 staged = pr.resolveWithPreset(staged) // Preset parameters take precedence from all other parameters
115 if err = pr.verifyConstraints(staged, action, templateVersionParameters); err != nil {
116 return nil, err
117 }
118 if staged, err = pr.resolveWithInput(staged, inv, action, templateVersionParameters); err != nil {
119 return nil, err
120 }
121 return staged, nil
122}
123
124func (pr *ParameterResolver) InitialValues() []codersdk.WorkspaceBuildParameter {
125 var staged []codersdk.WorkspaceBuildParameter

Callers 2

prepWorkspaceBuildFunction · 0.45

Tested by

no test coverage detected