75 lines
2.5 KiB
Go
75 lines
2.5 KiB
Go
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,
|
|
}
|
|
}
|
|
}
|
|
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
|
|
}
|