@@ -16,6 +16,7 @@ package commands
1616
1717import (
1818 "context"
19+ "errors"
1920 "fmt"
2021 "os"
2122 "time"
@@ -35,6 +36,7 @@ import (
3536 wf "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow"
3637 wfv1alpha1 "github.com/argoproj/argo-workflows/v3/pkg/apis/workflow/v1alpha1"
3738 "github.com/go-git/go-billy/v5/memfs"
39+ "github.com/go-git/go-git/v5/plumbing/transport"
3840 "github.com/spf13/cobra"
3941 v1 "k8s.io/api/core/v1"
4042 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -169,12 +171,23 @@ func RunGitSourceCreate(ctx context.Context, opts *GitSourceCreateOptions) error
169171 return fmt .Errorf ("failed to create demo workflowTemplate: %w" , err )
170172 }
171173
172- _ , err = gsRepo . Persist ( ctx , & git.PushOptions {
174+ pOpts := & git.PushOptions {
173175 CommitMsg : fmt .Sprintf ("Created demo workflow template in %s Directory" , opts .gsCloneOpts .Path ()),
174- })
176+ }
175177
178+ _ , err = gsRepo .Persist (ctx , pOpts )
176179 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+ }
178191 }
179192 }
180193
0 commit comments