diff --git a/app/controllers/api/v1/projects/sync_repositories_controller.rb b/app/controllers/api/v1/projects/sync_repositories_controller.rb index bd7bc204..1c98309d 100644 --- a/app/controllers/api/v1/projects/sync_repositories_controller.rb +++ b/app/controllers/api/v1/projects/sync_repositories_controller.rb @@ -29,7 +29,8 @@ class Api::V1::Projects::SyncRepositoriesController < Api::V1::BaseController else @sync_repositories = SyncRepository.where(project: @project, sync_direction: params[:sync_direction]) end - @sync_repository_branches = SyncRepositoryBranch.where(sync_repository_id: @sync_repositories, enable: true) + branch = params[:ref].split("refs/heads/")[-1] + @sync_repository_branches = SyncRepositoryBranch.where(sync_repository_id: @sync_repositories, gitlink_branch_name: branch, enable: true) # 全部分支同步暂时不做 # @sync_repositories.each do |item| # TouchSyncJob.perform_later(item) diff --git a/app/services/api/v1/projects/sync_repositories/create_service.rb b/app/services/api/v1/projects/sync_repositories/create_service.rb index d5cb05a6..6b64efab 100644 --- a/app/services/api/v1/projects/sync_repositories/create_service.rb +++ b/app/services/api/v1/projects/sync_repositories/create_service.rb @@ -73,11 +73,17 @@ class Api::V1::Projects::SyncRepositories::CreateService < ApplicationService end def create_webhook + url = "" + if type == "SyncRepositories::Gitee" + url = "#{Rails.application.config_for(:configuration)['platform_url']}/api/v1/#{project&.owner&.login}/#{project&.identifier}/sync_repositories/sync?sync_direction=1&repo_type=SyncRepositories::Gitee" + else + url = "#{Rails.application.config_for(:configuration)['platform_url']}/api/v1/#{project&.owner&.login}/#{project&.identifier}/sync_repositories/sync?sync_direction=1&repo_type=SyncRepositories::Github" + end webhook_params = { active: true, branch_filter: '*', http_method: 'POST', - url: "#{Rails.application.config_for(:configuration)['platform_url']}/api/v1/#{project&.owner&.login}/#{project&.identifier}/sync_repositories/sync?sync_direction=1", + url: url, content_type: 'json', type: 'reposync', events: ["push"]