diff --git a/app/views/organizations/teams/_detail.json.jbuilder b/app/views/organizations/teams/_detail.json.jbuilder index 68572814f..842995432 100644 --- a/app/views/organizations/teams/_detail.json.jbuilder +++ b/app/views/organizations/teams/_detail.json.jbuilder @@ -9,7 +9,7 @@ json.num_projects team.num_projects json.num_users team.num_users json.units team.team_units.pluck(:unit_type) json.users team.team_users.each do |user| - json.partial! "organizations/user_detail", user: user&.user + json.partial! "organizations/user_detail", user: user&.user if user&.user end json.is_admin @is_admin json.is_member team.is_member?(current_user.id) diff --git a/lib/tasks/sync_outer_repo.rake b/lib/tasks/sync_outer_repo.rake new file mode 100644 index 000000000..6f9ba2458 --- /dev/null +++ b/lib/tasks/sync_outer_repo.rake @@ -0,0 +1,35 @@ +namespace :sync_outer_repo do + desc "sync outer repository to gitlink" + task done: :environment do + file = ENV['file'] || "rcore-os_repo.xlsx" + user_type = ENV['type'] || "User" + doc = SimpleXlsxReader.open("#{Rails.root}/public/#{file}") + data = doc.sheets.first.rows + data.each_with_index do |row, index| + next if index == 0 + begin + user = (user_type == "User" ? User.find_by(login: row[1]) : Owner.find_by(login: row[1])) + project = user.projects.find_by(identifier: row[4]) + unless project.present? + p_category = ProjectCategory.find_or_create_by(name: row[6]) + p_language = ProjectLanguage.find_or_create_by(name: row[7].to_s.split("/")[0]) if row[7] + p_license = License.find_by(name: row[8]) + + mirror_params = { + user_id: user.id, + name: row[5], + description: row[9], + repository_name: row[4], + project_category_id: p_category.id, + project_language_id: p_language&.id, + clone_addr: row[10] + } + Projects::MigrateService.call(user, mirror_params) + end + puts "sync outer repository to gitlink Success repo: #{row[5]} username: #{row[0]}" + rescue Exception => e + puts "sync outer repository to gitlink Error repo: #{row[5]} username: #{row[0]}, error:#{e}" + end + end + end +end \ No newline at end of file diff --git a/public/rcore-os_repo.xlsx b/public/rcore-os_repo.xlsx new file mode 100644 index 000000000..83ff6f5fa Binary files /dev/null and b/public/rcore-os_repo.xlsx differ