func()

in graph/task.go [112:147]


func (t *Task) AddTaskDefaults(ctx context.Context, opts *TaskOptions) error {
	if opts.DefaultWorkingDir != "" && t.WorkingDirectory == "" {
		t.WorkingDirectory = opts.DefaultWorkingDir
	}

	// Merge in the defaults with the Task's specific environment variables.
	// NB: Order is important here. Allow the Task's environment variables to override the defaults provided.
	newEnvs, err := mergeEnvs(t.Envs, opts.Envs)
	if err != nil {
		return err
	}

	t.Envs = newEnvs
	t.Credentials = opts.Credentials
	if opts.TaskName != "" {
		t.TaskName = opts.TaskName
	} else {
		t.TaskName = noTaskNamePlaceholder
	}

	t.Registry = opts.Registry

	// External network parsed in from CLI will be set as default network, it will be used for any step if no network provide for them
	// The external network is append at the end of the list of networks, later we will do reverse iteration to get this network
	if opts.Network != "" {
		var externalNetwork *Network
		externalNetwork, err = NewNetwork(opts.Network, false, "external", true, true)
		if err != nil {
			return err
		}
		t.Networks = append(t.Networks, externalNetwork)
	}

	err = t.initialize(ctx)
	return err
}