| @@ -0,0 +1,21 @@ | |||||
| # 执行示例 bundle exec rake init_project_topic:project | |||||
| # RAILS_ENV=production bundle exec rake init_project_topic:project | |||||
| namespace :init_project_topic do | |||||
| desc "Init Project Topic for Project" | |||||
| task project: :environment do | |||||
| Project.find_each do |p| | |||||
| 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 | |||||
| end | |||||
| end | |||||
| end | |||||
| end | |||||
| end | |||||