@@ -28,6 +28,7 @@ import (
28
28
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
29
29
"k8s.io/apimachinery/pkg/runtime"
30
30
"k8s.io/apimachinery/pkg/types"
31
+ "kpt.dev/configsync/e2e/nomostest/gitproviders"
31
32
"kpt.dev/configsync/e2e/nomostest/retry"
32
33
"kpt.dev/configsync/e2e/nomostest/testing"
33
34
"kpt.dev/configsync/e2e/nomostest/testkubeclient"
@@ -96,9 +97,8 @@ type Repository struct {
96
97
// For other git providers, it appends a UUID to Name for uniqueness.
97
98
RemoteRepoName string
98
99
99
- // RemoteURL is the remote URL of the repository.
100
- // It is used to set the url for the remote origin using `git remote add origin <REMOTE_URL>.
101
- RemoteURL string
100
+ // GitProvider is the provider that hosts the Git repositories.
101
+ GitProvider gitproviders.GitProvider
102
102
103
103
// Scheme used for encoding and decoding objects.
104
104
Scheme * runtime.Scheme
@@ -130,6 +130,7 @@ func NewRepository(nt *NT, repoType RepoType, nn types.NamespacedName, sourceFor
130
130
SafetyClusterRolePath : fmt .Sprintf ("acme/cluster/cluster-role-%s.yaml" , safetyName ),
131
131
Scheme : nt .Scheme ,
132
132
Logger : nt .Logger ,
133
+ GitProvider : nt .GitProvider ,
133
134
}
134
135
135
136
repoName , err := nt .GitProvider .CreateRepository (namespacedName )
@@ -139,16 +140,6 @@ func NewRepository(nt *NT, repoType RepoType, nn types.NamespacedName, sourceFor
139
140
nt .T .Fatal (err )
140
141
}
141
142
g .RemoteRepoName = repoName
142
- var port int
143
- // port argument is used for in-cluster git provider with the local port forward.
144
- // the argument is ignored for other providers, e.g. Gitlab/Bitbucket
145
- if nt .gitRepoPortForwarder != nil {
146
- port , err = nt .gitRepoPortForwarder .LocalPort ()
147
- if err != nil {
148
- nt .T .Fatal (err )
149
- }
150
- }
151
- g .RemoteURL = nt .GitProvider .RemoteURL (port , repoName )
152
143
153
144
g .init (nt .gitPrivateKeyPath )
154
145
g .initialCommit (sourceFormat )
@@ -162,18 +153,6 @@ func (g *Repository) ReInit(nt *NT, sourceFormat filesystem.SourceFormat) {
162
153
163
154
// Update test environment
164
155
g .T = nt .T
165
- var port int
166
- // port argument is used for in-cluster git provider with the local port forward.
167
- // the argument is ignored for other providers, e.g. Gitlab/Bitbucket
168
- if nt .gitRepoPortForwarder != nil {
169
- var err error
170
- port , err = nt .gitRepoPortForwarder .LocalPort ()
171
- if err != nil {
172
- nt .T .Fatal (err )
173
- }
174
- }
175
- // Update URL to use latest port-forward port
176
- g .RemoteURL = nt .GitProvider .RemoteURL (port , g .RemoteRepoName )
177
156
// Reset repo contents
178
157
g .init (nt .gitPrivateKeyPath )
179
158
g .initialCommit (sourceFormat )
@@ -527,9 +506,12 @@ func (g *Repository) Push(refspec string, flags ...string) {
527
506
took , err := retry .Retry (1 * time .Minute , func () error {
528
507
args := []string {"push" }
529
508
args = append (args , flags ... )
530
- args = append (args , g .RemoteURL , refspec )
509
+ remoteURL , err := g .GitProvider .RemoteURL (g .RemoteRepoName )
510
+ if err != nil {
511
+ return err
512
+ }
513
+ args = append (args , remoteURL , refspec )
531
514
cmd := g .gitCmd (args ... )
532
- var err error
533
515
out , err = cmd .CombinedOutput ()
534
516
return err
535
517
})
@@ -539,7 +521,11 @@ func (g *Repository) Push(refspec string, flags ...string) {
539
521
}
540
522
}
541
523
542
- func (g * Repository ) pushAllToRemote (remote string ) {
524
+ func (g * Repository ) pushAllToRemote () {
525
+ remote , err := g .GitProvider .RemoteURL (g .RemoteRepoName )
526
+ if err != nil {
527
+ g .T .Errorf ("failed to get remote URL: %v" , err )
528
+ }
543
529
cmd := g .gitCmd ("push" , remote , "--all" )
544
530
out , err := cmd .CombinedOutput ()
545
531
if err != nil {
0 commit comments