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
}