From 9ecaeda66e0869af0c4f68b5c257522c7d3c7d6b Mon Sep 17 00:00:00 2001
From: Giteabot <teabot@gitea.io>
Date: Thu, 20 Jun 2024 21:53:15 +0800
Subject: [PATCH] [Fix] Account Linking UpdateMigrationsByType  (#31428)
 (#31434)

Backport #31428 by Sumit189

Co-authored-by: Sumit <sumit.18.paul@gmail.com>
---
 services/externalaccount/user.go | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/services/externalaccount/user.go b/services/externalaccount/user.go
index e2de41da18..3cfd8c81f9 100644
--- a/services/externalaccount/user.go
+++ b/services/externalaccount/user.go
@@ -5,6 +5,7 @@ package externalaccount
 
 import (
 	"context"
+	"strconv"
 	"strings"
 
 	"code.gitea.io/gitea/models/auth"
@@ -82,6 +83,11 @@ func UpdateExternalUser(ctx context.Context, user *user_model.User, gothUser got
 
 // UpdateMigrationsByType updates all migrated repositories' posterid from gitServiceType to replace originalAuthorID to posterID
 func UpdateMigrationsByType(ctx context.Context, tp structs.GitServiceType, externalUserID string, userID int64) error {
+	// Skip update if externalUserID is not a valid numeric ID or exceeds int64
+	if _, err := strconv.ParseInt(externalUserID, 10, 64); err != nil {
+		return nil
+	}
+
 	if err := issues_model.UpdateIssuesMigrationsByType(ctx, tp, externalUserID, userID); err != nil {
 		return err
 	}