@@ -2,7 +2,6 @@ package oci
22
33import (
44 "context"
5- "crypto/tls"
65 "fmt"
76 "net/http"
87 "os"
@@ -42,6 +41,8 @@ type Pusher struct {
4241
4342 updates chan v1.Update
4443 done chan bool
44+
45+ transport http.RoundTripper
4546}
4647
4748func EmptyCredentialsProvider (ctx context.Context , registry string ) (Credentials , error ) {
@@ -60,6 +61,12 @@ func WithVerbose(verbose bool) Opt {
6061 }
6162}
6263
64+ func WithTransport (transport http.RoundTripper ) Opt {
65+ return func (pusher * Pusher ) {
66+ pusher .transport = transport
67+ }
68+ }
69+
6370func NewPusher (insecure , anon , verbose bool , opts ... Opt ) * Pusher {
6471 result := & Pusher {
6572 credentialsProvider : EmptyCredentialsProvider ,
@@ -68,6 +75,7 @@ func NewPusher(insecure, anon, verbose bool, opts ...Opt) *Pusher {
6875 Verbose : verbose ,
6976 updates : make (chan v1.Update , 10 ),
7077 done : make (chan bool , 1 ),
78+ transport : remote .DefaultTransport ,
7179 }
7280 for _ , opt := range opts {
7381 opt (result )
@@ -157,14 +165,7 @@ func (p *Pusher) writeIndex(ctx context.Context, ref name.Reference, ii v1.Image
157165 oo := []remote.Option {
158166 remote .WithContext (ctx ),
159167 remote .WithProgress (p .updates ),
160- }
161-
162- if p .Insecure {
163- t := remote .DefaultTransport .(* http.Transport ).Clone ()
164- t .TLSClientConfig = & tls.Config {
165- InsecureSkipVerify : true ,
166- }
167- oo = append (oo , remote .WithTransport (t ))
168+ remote .WithTransport (p .transport ),
168169 }
169170
170171 if ! p .Anonymous {
0 commit comments