@@ -501,7 +501,7 @@ func (c *Config) mergeRepos(_ context.Context) error {
501501 for _ , repoFile := range repoFiles {
502502 repoFile .Include = nil
503503
504- if err := mergo .Merge (c .Repo , repoFile , mergo .WithAppendSlice ); err != nil {
504+ if err := mergo .Merge (c .Repo , repoFile , mergo .WithOverride , mergo . WithAppendSlice ); err != nil {
505505 mErr = multierror .Append (mErr , err )
506506 continue
507507 }
@@ -510,7 +510,7 @@ func (c *Config) mergeRepos(_ context.Context) error {
510510 // Merge the repos from the config file.
511511 repoFile := & Repo {}
512512 if err := config .Parse (nil , "repos" , c .Data , repoFile ); err == nil {
513- mergo .Merge (c .Repo , repoFile , mergo .WithAppendSlice )
513+ mergo .Merge (c .Repo , repoFile , mergo .WithOverride , mergo . WithAppendSlice )
514514 }
515515
516516 data , err := config .ParseStruct (nil , c .Repo )
@@ -552,15 +552,15 @@ func (c *Config) merge(_ context.Context) error {
552552 var mErr * multierror.Error
553553
554554 // Merge hardcoded data first.
555- if err := mergo .Merge (& c .Data , c .HardcodedData , mergo .WithAppendSlice ); err != nil {
555+ if err := mergo .Merge (& c .Data , c .HardcodedData , mergo .WithOverride , mergo . WithAppendSlice ); err != nil {
556556 mErr = multierror .Append (mErr , err )
557557 }
558558
559559 for _ , cfg := range configs {
560560 // Log that we're merging this config.
561561 c .logger .Trace ("Merging config" , "url" , cfg .URL .String ())
562562
563- if err := mergo .Merge (& c .Data , cfg .Data , mergo .WithAppendSlice ); err != nil {
563+ if err := mergo .Merge (& c .Data , cfg .Data , mergo .WithOverride , mergo . WithAppendSlice ); err != nil {
564564 mErr = multierror .Append (mErr , err )
565565 }
566566 }
@@ -637,14 +637,14 @@ func (c *Config) applyGlobals() error {
637637 return fmt .Errorf ("service '%s' requires global config '%s', but it was not found" , name , servicesSvcConfig .Globals )
638638 }
639639
640- if err := mergo .Merge (& mergedConfig , svcGlobal , mergo .WithAppendSlice ); err != nil {
640+ if err := mergo .Merge (& mergedConfig , svcGlobal , mergo .WithOverride , mergo . WithAppendSlice ); err != nil {
641641 return err
642642 }
643643
644644 // Then merge in the service configuration so it takes precedence.
645645 svcConfig , ok := servicesConfig [name ].(map [string ]any )
646646 if ok {
647- if err := mergo .Merge (& mergedConfig , svcConfig , mergo .WithAppendSlice ); err != nil {
647+ if err := mergo .Merge (& mergedConfig , svcConfig , mergo .WithOverride , mergo . WithAppendSlice ); err != nil {
648648 return err
649649 }
650650 }
0 commit comments