@@ -549,9 +549,8 @@ func (service *BaseService) syncRef(ctx context.Context, localRepo string, remot
549
549
copyOpts = append (copyOpts , regclient .ImageWithReferrers ())
550
550
}
551
551
552
- // Platform/Architecture filtering - use ImageWithChildren to handle manifest lists
553
- // ImageWithChildren ensures we get the complete manifest list, then we can filter platforms
554
- copyOpts = append (copyOpts , regclient .ImageWithChildren ())
552
+ // In regclient v0.8.3, we don't need a special option for manifest lists
553
+ // The platform filtering is already handled in our custom code below
555
554
556
555
// Log platform filtering information
557
556
if len (service .config .Platforms ) > 0 {
@@ -610,7 +609,14 @@ func (service *BaseService) syncRef(ctx context.Context, localRepo string, remot
610
609
} else {
611
610
// It's a single-arch image, verify if we should include this platform
612
611
if man .GetDescriptor ().Platform != nil {
613
- platform := man .GetDescriptor ().Platform
612
+ // Convert platform to ispec.Platform for compatibility with regclient v0.8.3
613
+ platform := & ispec.Platform {
614
+ Architecture : man .GetDescriptor ().Platform .Architecture ,
615
+ OS : man .GetDescriptor ().Platform .OS ,
616
+ OSVersion : man .GetDescriptor ().Platform .OSVersion ,
617
+ OSFeatures : man .GetDescriptor ().Platform .OSFeatures ,
618
+ Variant : man .GetDescriptor ().Platform .Variant ,
619
+ }
614
620
if ! service .shouldIncludePlatform (platform ) {
615
621
platformDesc := platform .Architecture
616
622
if platform .OS != "" {
0 commit comments