diff --git a/lib/tasks/repair_gitea_user.rake b/lib/tasks/repair_gitea_user.rake index 556fdbeef..add6b7005 100644 --- a/lib/tasks/repair_gitea_user.rake +++ b/lib/tasks/repair_gitea_user.rake @@ -15,6 +15,19 @@ namespace :repair_gitea_user do user.is_sync_pwd = false user.save! success_count = success_count + 1 + else + if interactor.result['message'].present? && interactor.result['message'].to_s.include?("user already exists") + uid = ActiveRecord::Base.connection.query_value("SELECT id FROM forgegitea.`user` WHERE forgegitea.`user`.name='#{user.login}' and forgegitea.`user`.email='#{user.mail}'") + if uid.present? + result = Gitea::User::GenerateTokenService.call(user.login, "abc12345678" ) + if result['sha1'].present? + user.gitea_token = result['sha1'] + user.gitea_uid = uid + user.is_sync_pwd = false + user.save! + end + end + end end rescue Exception => e puts "repair gitea user: #{user.id}:#{user.login}:, error:#{e}"