@@ -18,7 +18,9 @@ package xpkg
1818
1919import (
2020 "context"
21+ "crypto/tls"
2122 "fmt"
23+ "net/http"
2224 "os"
2325 "path/filepath"
2426
@@ -129,6 +131,17 @@ func (c *pushCmd) Run(logger logging.Logger) error { //nolint:gocognit // This f
129131 authn .DefaultKeychain ,
130132 )
131133
134+ t := & http.Transport {
135+ TLSClientConfig : & tls.Config {
136+ InsecureSkipVerify : upCtx .InsecureSkipTLSVerify , //nolint:gosec // we need to support insecure connections if requested
137+ },
138+ }
139+
140+ options := []remote.Option {
141+ remote .WithAuthFromKeychain (kc ),
142+ remote .WithTransport (t ),
143+ }
144+
132145 // If there's only one package file, handle the simple path.
133146 if len (c .PackageFiles ) == 1 {
134147 img , err := tarball .ImageFromPath (c .PackageFiles [0 ], nil )
@@ -139,7 +152,7 @@ func (c *pushCmd) Run(logger logging.Logger) error { //nolint:gocognit // This f
139152 if err != nil {
140153 return errors .Wrapf (err , errAnnotateLayers )
141154 }
142- if err := remote .Write (tag , img , remote . WithAuthFromKeychain ( kc ) ); err != nil {
155+ if err := remote .Write (tag , img , options ... ); err != nil {
143156 return errors .Wrapf (err , errFmtPushPackage , c .PackageFiles [0 ])
144157 }
145158 logger .Debug ("Pushed package" , "path" , c .PackageFiles [0 ], "ref" , tag .String ())
@@ -194,7 +207,7 @@ func (c *pushCmd) Run(logger logging.Logger) error { //nolint:gocognit // This f
194207 },
195208 },
196209 }
197- if err := remote .Write (ref , img , remote . WithAuthFromKeychain ( kc ) , remote .WithContext (ctx )); err != nil {
210+ if err := remote .Write (ref , img , append ( options , remote .WithContext (ctx )) ... ); err != nil {
198211 return errors .Wrapf (err , errFmtPushPackage , file )
199212 }
200213 logger .Debug ("Pushed package" , "path" , file , "ref" , ref .String ())
@@ -206,7 +219,7 @@ func (c *pushCmd) Run(logger logging.Logger) error { //nolint:gocognit // This f
206219 return err
207220 }
208221
209- if err := remote .WriteIndex (tag , mutate .AppendManifests (empty .Index , adds ... ), remote . WithAuthFromKeychain ( kc ) ); err != nil {
222+ if err := remote .WriteIndex (tag , mutate .AppendManifests (empty .Index , adds ... ), options ... ); err != nil {
210223 return errors .Wrapf (err , errFmtWriteIndex , len (adds ))
211224 }
212225 logger .Debug ("Wrote OCI index" , "ref" , tag .String (), "manifests" , len (adds ))
0 commit comments