func()

in pkg/objectmodifier/stage.go [53:77]


func (m *StageBatchModifier) Apply(ctx context.Context, stage *cdPipeApi.Stage) (bool, error) {
	patch := client.MergeFrom(stage.DeepCopy())
	needToPatch := false

	for _, modifier := range m.modifiers {
		changed, err := modifier.Apply(ctx, stage)
		if err != nil {
			return false, fmt.Errorf("failed to apply modifier: %w", err)
		}

		if changed {
			needToPatch = true
		}
	}

	if needToPatch {
		if err := m.k8sClient.Patch(ctx, stage, patch); err != nil {
			return false, fmt.Errorf("failed to patch stage: %w", err)
		}

		return true, nil
	}

	return false, nil
}