diff --git a/lib/tasks/init_project_topic.rake b/lib/tasks/init_project_topic.rake index df4714d14..f6fcd4b96 100644 --- a/lib/tasks/init_project_topic.rake +++ b/lib/tasks/init_project_topic.rake @@ -7,15 +7,19 @@ namespace :init_project_topic do Project.order(created_at: :desc).find_each do |p| next unless p.owner.present? next if p.project_topics.size >= 3 - languages = $gitea_client.get_repos_languages_by_owner_repo(p.owner.login, p.identifier) - topic_count = p.project_topics.size - languages.each do |k, _| - next if topic_count >= 3 - project_topic = ProjectTopic.find_or_create_by!(name: k.downcase) - project_topic_ralate = project_topic.project_topic_ralates.find_or_create_by!(project_id: p.id) - if project_topic.present? && project_topic_ralate.present? - topic_count +=1 + begin + languages = $gitea_client.get_repos_languages_by_owner_repo(p.owner.login, p.identifier) + topic_count = p.project_topics.size + languages.each do |k, _| + next if topic_count >= 3 + project_topic = ProjectTopic.find_or_create_by!(name: k.downcase) + project_topic_ralate = project_topic.project_topic_ralates.find_or_create_by!(project_id: p.id) + if project_topic.present? && project_topic_ralate.present? + topic_count +=1 + end end + rescue + next end end end