@@ -16,6 +16,7 @@ package commands
16
16
17
17
import (
18
18
"context"
19
+ "errors"
19
20
"fmt"
20
21
"os"
21
22
"time"
@@ -35,6 +36,7 @@ import (
35
36
wf "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow"
36
37
wfv1alpha1 "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1"
37
38
"github.com/go-git/go-billy/v5/memfs"
39
+ "github.com/go-git/go-git/v5/plumbing/transport"
38
40
"github.com/spf13/cobra"
39
41
v1 "k8s.io/api/core/v1"
40
42
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -169,12 +171,23 @@ func RunGitSourceCreate(ctx context.Context, opts *GitSourceCreateOptions) error
169
171
return fmt .Errorf ("failed to create demo workflowTemplate: %w" , err )
170
172
}
171
173
172
- _ , err = gsRepo . Persist ( ctx , & git.PushOptions {
174
+ pOpts := & git.PushOptions {
173
175
CommitMsg : fmt .Sprintf ("Created demo workflow template in %s Directory" , opts .gsCloneOpts .Path ()),
174
- })
176
+ }
175
177
178
+ _ , err = gsRepo .Persist (ctx , pOpts )
176
179
if err != nil {
177
- return fmt .Errorf ("failed to push changes. Err: %w" , err )
180
+ if errors .Is (err , transport .ErrRepositoryNotFound ) {
181
+ log .G (ctx ).Warn ("failed to persist git-source repo, trying again in 3 seconds..." )
182
+ time .Sleep (time .Second * 3 )
183
+
184
+ _ , err = gsRepo .Persist (ctx , pOpts )
185
+ if err != nil {
186
+ return fmt .Errorf ("failed to push changes. Err: %w" , err )
187
+ }
188
+ } else {
189
+ return fmt .Errorf ("failed to push changes. Err: %w" , err )
190
+ }
178
191
}
179
192
}
180
193
0 commit comments