diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 0e4109002..eb42f6075 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -174,27 +174,31 @@ class SyncForgeController < ApplicationController SyncLog.sync_log("***2. begin_to_syncissues---------------") begin forge_issue_ids = project&.issues&.select(:id)&.pluck(:id) - forge_journal_ids = Journal.select([:id, :journalized_id, :journalized_type]).where(journalized_id: forge_issue_ids).pluck(:id) - diff_issue_ids = old_issues_params[:ids] - forge_issue_ids sync_projects_params = {} - if diff_issue_ids.size == 0 #issue数量一样,判断评论是否有增减 - diff_journal_ids = old_issues_params[:journals][:ids] - forge_journal_ids - unless diff_journal_ids.size == 0 + unless forge_issue_ids.size.to_i < old_issues_params[:count].to_i + forge_journal_ids = Journal.select([:id, :journalized_id, :journalized_type]).where(journalized_id: forge_issue_ids).pluck(:id) + diff_issue_ids = old_issues_params[:ids] - forge_issue_ids + + if diff_issue_ids.size == 0 #issue数量一样,判断评论是否有增减 + diff_journal_ids = old_issues_params[:journals][:ids] - forge_journal_ids + unless diff_journal_ids.size == 0 + sync_projects_params = { + type: "Journal", + ids: diff_journal_ids, + token: get_token, + parent_id: project_id + } + end + else sync_projects_params = { - type: "Journal", - ids: diff_journal_ids, + type: "Issue", + ids: diff_issue_ids, token: get_token, parent_id: project_id } end - else - sync_projects_params = { - type: "Issue", - ids: diff_issue_ids, - token: get_token, - parent_id: project_id - } end + SyncProjectsJob.perform_later(sync_projects_params, gitea_main) if sync_projects_params.present? SyncLog.sync_log("***2. end_to_syncissues---------------") rescue Exception => e @@ -205,32 +209,37 @@ class SyncForgeController < ApplicationController def change_project_watchers(project, watchers,gitea_main) SyncLog.sync_log("***5. begin_to_sync_watchers---------------") forge_watchers_ids = project&.watchers&.select(:id)&.pluck(:id) - diff_target_ids = watchers[:ids] - forge_watchers_ids - if diff_target_ids.size > 0 - sync_projects_params = { - type: "Watcher", - ids: diff_target_ids, - token: get_token, - parent_id: project.id - } - SyncProjectsJob.perform_later(sync_projects_params,gitea_main) - SyncLog.sync_log("***5. begin_to_sync_watchers---------------") - + unless forge_watchers_ids.size.to_i < watchers[:count].to_i + diff_target_ids = watchers[:ids] - forge_watchers_ids + if diff_target_ids.size > 0 + sync_projects_params = { + type: "Watcher", + ids: diff_target_ids, + token: get_token, + parent_id: project.id + } + SyncProjectsJob.perform_later(sync_projects_params,gitea_main) + + end end + SyncLog.sync_log("***5. begin_to_sync_watchers---------------") end def change_project_versions(project, versions,gitea_main) SyncLog.sync_log("***4. begin_to_sync_versions---------------") forge_version_ids = project&.versions&.select(:id)&.pluck(:id) - diff_version_ids = versions[:ids] - forge_version_ids - if diff_version_ids.size > 0 - sync_projects_params = { - type: "Version", - ids: diff_version_ids, - token: get_token, - parent_id: project.id - } - SyncProjectsJob.perform_later(sync_projects_params,gitea_main) + unless forge_version_ids.size < versions[:count].to_i + diff_version_ids = versions[:ids] - forge_version_ids + if diff_version_ids.size > 0 + sync_projects_params = { + type: "Version", + ids: diff_version_ids, + token: get_token, + parent_id: project.id + } + SyncProjectsJob.perform_later(sync_projects_params,gitea_main) + end + SyncLog.sync_log("***4. end_to_sync_versions---------------") end end @@ -238,15 +247,18 @@ class SyncForgeController < ApplicationController def change_project_members(project, members,gitea_main) SyncLog.sync_log("***3. begin_to_sync_members---------------") forge_member_ids = project&.members&.select(:id)&.pluck(:id) - diff_member_ids = members[:ids] - forge_member_ids - if diff_member_ids.size > 0 - sync_projects_params = { - type: "Member", - ids: diff_member_ids, - token: get_token, - parent_id: project.id - } - SyncProjectsJob.perform_later(sync_projects_params,gitea_main) + unless forge_member_ids.size < members[:count] + diff_member_ids = members[:ids] - forge_member_ids + if diff_member_ids.size > 0 + sync_projects_params = { + type: "Member", + ids: diff_member_ids, + token: get_token, + parent_id: project.id + } + SyncProjectsJob.perform_later(sync_projects_params,gitea_main) + end + SyncLog.sync_log("***3. end_to_sync_members---------------") end end