package config import "gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline" func (c Config) Redacted() Config { return cloneConfig(c) } func (c Config) RedactedDiagnosticsPayload() any { return c.Redacted() } func (e EffectiveConfig) RedactedDiagnosticsPayload() any { return EffectiveConfig{ Config: e.Config.Redacted(), PipelineID: e.PipelineID, Only: append([]string(nil), e.Only...), ReferenceOverrides: append([]pipeline.ReferenceBinding(nil), e.ReferenceOverrides...), ReferenceUnbinds: append([]pipeline.ReferenceUnbind(nil), e.ReferenceUnbinds...), ResolvedPipeline: cloneResolvedPipeline(e.ResolvedPipeline), } } func cloneResolvedPipeline(in pipeline.ResolvedPipeline) pipeline.ResolvedPipeline { out := in out.Input = cloneModuleBinding(in.Input) out.Chunk = cloneModuleBinding(in.Chunk) out.ChunkReferences = pipeline.CloneReferenceTarget(in.ChunkReferences) out.Output = cloneModuleBinding(in.Output) if len(in.ValidatorChains) > 0 { out.ValidatorChains = make([]pipeline.ResolvedValidatorChain, len(in.ValidatorChains)) for i, chain := range in.ValidatorChains { out.ValidatorChains[i] = cloneResolvedValidatorChain(chain) } } if len(in.ArtifactLanes) > 0 { out.ArtifactLanes = make([]pipeline.ResolvedArtifactLane, len(in.ArtifactLanes)) for i, lane := range in.ArtifactLanes { out.ArtifactLanes[i] = cloneResolvedArtifactLane(lane) } } return out } func cloneResolvedValidatorChain(in pipeline.ResolvedValidatorChain) pipeline.ResolvedValidatorChain { out := in if len(in.Validators) > 0 { out.Validators = make([]pipeline.ResolvedValidator, len(in.Validators)) for i, validator := range in.Validators { out.Validators[i] = pipeline.ResolvedValidator{ Binding: cloneModuleBinding(validator.Binding), ExecutionClass: validator.ExecutionClass, Target: validator.Target, ArtifactKind: validator.ArtifactKind, } } } return out } func cloneResolvedArtifactLane(in pipeline.ResolvedArtifactLane) pipeline.ResolvedArtifactLane { out := in out.Extract = cloneModuleBinding(in.Extract) out.Merge = cloneModuleBinding(in.Merge) out.Normalize = cloneModuleBinding(in.Normalize) out.ExtractReferences = pipeline.CloneReferenceTarget(in.ExtractReferences) out.MergeReferences = pipeline.CloneReferenceTarget(in.MergeReferences) out.NormalizeReferences = pipeline.CloneReferenceTarget(in.NormalizeReferences) if len(in.Validators) > 0 { out.Validators = make([]pipeline.ModuleBinding, len(in.Validators)) for i, binding := range in.Validators { out.Validators[i] = cloneModuleBinding(binding) } } return out }