func()

in tools/eksDistroBuildToolingOpsTools/pkg/git/gogitClient.go [342:358]


func (g *GogitClient) pullIfRemoteExists(r *gogit.Repository, w *gogit.Worktree, branchName string, localBranchRef plumbing.ReferenceName) error {
	err := g.Retrier.Retry(func() error {
		remoteExists, err := g.remoteBranchExists(r, localBranchRef)
		if err != nil {
			return fmt.Errorf("checking if remote branch exists %s: %v", branchName, err)
		}

		if remoteExists {
			err = g.Client.PullWithContext(context.Background(), w, g.Auth, localBranchRef)
			if err != nil && !errors.Is(err, gogit.NoErrAlreadyUpToDate) && !errors.Is(err, gogit.ErrRemoteNotFound) {
				return fmt.Errorf("pulling from remote when checking out existing branch %s: %v", branchName, err)
			}
		}
		return nil
	})
	return err
}