aboutsummaryrefslogtreecommitdiffstats
path: root/modules/git/remote.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/git/remote.go')
-rw-r--r--modules/git/remote.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/modules/git/remote.go b/modules/git/remote.go
index 7b10e6b663..a872b3b82e 100644
--- a/modules/git/remote.go
+++ b/modules/git/remote.go
@@ -5,6 +5,7 @@ package git
import (
"context"
+ "strings"
giturl "code.gitea.io/gitea/modules/git/url"
)
@@ -37,3 +38,12 @@ func GetRemoteURL(ctx context.Context, repoPath, remoteName string) (*giturl.Git
}
return giturl.Parse(addr)
}
+
+// IsRemoteNotExistError checks the prefix of the error message to see whether a remote does not exist.
+func IsRemoteNotExistError(err error) bool {
+ // see: https://github.com/go-gitea/gitea/issues/32889#issuecomment-2571848216
+ // Should not add space in the end, sometimes git will add a `:`
+ prefix1 := "exit status 128 - fatal: No such remote" // git < 2.30
+ prefix2 := "exit status 2 - error: No such remote" // git >= 2.30
+ return strings.HasPrefix(err.Error(), prefix1) || strings.HasPrefix(err.Error(), prefix2)
+}