61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
desc "Fix Some Unstep Data"
 | 
						|
 | 
						|
namespace :fix_some_error_data do
 | 
						|
  task org_member_and_project_member: :environment do
 | 
						|
    puts "======Begin: fix organization memberr======"
 | 
						|
    fix_org_count = 0
 | 
						|
    OrganizationUser.find_each do |org_user|
 | 
						|
      org = org_user.organization
 | 
						|
      if org.team_users.where(user_id: org_user.user_id).blank?
 | 
						|
        Gitea::Organization::OrganizationUser::DeleteService.call(org_user.organization.gitea_token, org_user.organization.login, org_user&.user&.login)
 | 
						|
        org_user.destroy 
 | 
						|
        fix_org_count += 1
 | 
						|
      end
 | 
						|
    end
 | 
						|
    puts "======Count: #{fix_org_count}======"
 | 
						|
    puts "======End: fix organization member and project member======"
 | 
						|
    puts "======Begin: fix project member======"
 | 
						|
    fix_pro_count = 0
 | 
						|
    Member.joins(project: :owner).where(users: {type: 'Organization'}).find_each do |member|
 | 
						|
      if member.project.owner.team_users.where(user_id: member.user_id).blank?
 | 
						|
        next 
 | 
						|
      else 
 | 
						|
        member.destroy
 | 
						|
        fix_pro_count += 1
 | 
						|
      end
 | 
						|
    end
 | 
						|
    puts "======Count: #{fix_pro_count}======"
 | 
						|
    puts "======End: fix project member======"
 | 
						|
  end
 | 
						|
 | 
						|
  task open_full_gitea_team_authorize: :environment do 
 | 
						|
    puts "======Begin: fix open full team authorize======"
 | 
						|
    team_count = 0
 | 
						|
    Team.find_each do |team|
 | 
						|
      team.team_units.destroy_all
 | 
						|
      %w(code issues pulls wiki releases).each do |unit|
 | 
						|
        TeamUnit.build(team.organization_id, team.id, unit)
 | 
						|
      end
 | 
						|
      Gitea::Organization::Team::UpdateService.call(team&.organization&.gitea_token, team)
 | 
						|
      team_count += 1
 | 
						|
    end
 | 
						|
    puts "======Count: #{team_count}======"
 | 
						|
    puts "======End: fix open full team authorize======"
 | 
						|
  end
 | 
						|
 | 
						|
  task transfer_repository_user_id: :environment do 
 | 
						|
    puts "======Begin: fix open full team authorize======"
 | 
						|
    repo_count = 0
 | 
						|
    AppliedTransferProject.find_each do |transfer|
 | 
						|
      next unless transfer.project.present?
 | 
						|
      next unless transfer.project.repository.present?
 | 
						|
      if transfer.project.user_id != transfer.project.repository.user_id 
 | 
						|
        transfer.project.repository.update(user_id: transfer.project.user_id)
 | 
						|
        repo_count += 1
 | 
						|
      end
 | 
						|
    end
 | 
						|
    puts "======Count: #{repo_count}======"
 | 
						|
    puts "======End: fix open full team authorize======"
 | 
						|
 | 
						|
  end
 | 
						|
end |