From 9c32cd8769e2514acf883d557a84ef0d2b69f55d Mon Sep 17 00:00:00 2001 From: yystopf Date: Wed, 24 Apr 2024 15:17:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9Aexter=5Ftoken?= =?UTF-8?q?=E5=92=8Cinter=5Ftoken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v1/projects/sync_repositories_controller.rb | 2 +- .../sync_repositories/create_service.rb | 17 ++++++++--------- .../reposync/create_sync_repo_service.rb | 8 ++++++-- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/app/controllers/api/v1/projects/sync_repositories_controller.rb b/app/controllers/api/v1/projects/sync_repositories_controller.rb index 76e2bef4..27bc32e1 100644 --- a/app/controllers/api/v1/projects/sync_repositories_controller.rb +++ b/app/controllers/api/v1/projects/sync_repositories_controller.rb @@ -44,7 +44,7 @@ class Api::V1::Projects::SyncRepositoriesController < Api::V1::BaseController def change_enable return render_error("请输入正确的分支名称") if params[:gitlink_branch_name].blank? || params[:external_branch_name].blank? - return render_error("请输入正确的状态") if params[:enable].blank? + # return render_error("请输入正确的状态") if params[:enable].blank? @sync_repository_branches = SyncRepositoryBranch.joins(:sync_repository).where(sync_repositories: {project_id: @project.id}, gitlink_branch_name: params[:gitlink_branch_name], external_branch_name: params[:external_branch_name]) if @sync_repository_branches.update_all({enable: params[:enable]}) @sync_repository_branches.each do |branch| 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 0295049b..69617418 100644 --- a/app/services/api/v1/projects/sync_repositories/create_service.rb +++ b/app/services/api/v1/projects/sync_repositories/create_service.rb @@ -49,8 +49,9 @@ class Api::V1::Projects::SyncRepositories::CreateService < ApplicationService private def create_sync_repository - repository1 = Reposync::CreateSyncRepoService.call(repo_name(1), gitlink_repo_address, act_external_repo_address, sync_granularity, 1) - repository2 = Reposync::CreateSyncRepoService.call(repo_name(2), gitlink_repo_address, act_external_repo_address, sync_granularity, 2) + repository1 = Reposync::CreateSyncRepoService.call(repo_name(1), gitlink_repo_address, gitlink_token, external_repo_address, external_token, sync_granularity, 1) + repository2 = Reposync::CreateSyncRepoService.call(repo_name(2), gitlink_repo_address, gitlink_token, external_repo_address, external_token, sync_granularity, 2) + raise Error, '创建同步仓库失败' if repository1[0].to_i > 0 || repository2[0].to_i > 0 @sync_repository1 = SyncRepository.create!(project: project, type: type, repo_name: repo_name(1), external_repo_address: external_repo_address, sync_granularity: sync_granularity, sync_direction: 1) @sync_repository2 = SyncRepository.create!(project: project, type: type, repo_name: repo_name(2), external_repo_address: external_repo_address, sync_granularity: sync_granularity, sync_direction: 2) end @@ -58,6 +59,7 @@ class Api::V1::Projects::SyncRepositories::CreateService < ApplicationService def create_sync_repository_branch branch1 = Reposync::CreateSyncBranchService.call(repo_name(1),gitlink_branch_name, external_branch_name) branch2 = Reposync::CreateSyncBranchService.call(repo_name(2),gitlink_branch_name, external_branch_name) + raise Error, '创建同步仓库分支失败' if branch1[0].to_i > 0 || branch2[0].to_i > 0 @sync_repository_branch1 = SyncRepositoryBranch.create!(sync_repository: @sync_repository1, gitlink_branch_name: gitlink_branch_name, external_branch_name: external_branch_name, reposync_branch_id: branch1[1]["id"]) @sync_repository_branch2 = SyncRepositoryBranch.create!(sync_repository: @sync_repository2, gitlink_branch_name: gitlink_branch_name, external_branch_name: external_branch_name, reposync_branch_id: branch2[1]["id"]) end @@ -91,14 +93,11 @@ class Api::V1::Projects::SyncRepositories::CreateService < ApplicationService end end - def act_external_repo_address - body = external_repo_address.split("https://")[1] - return "https://oauth2:#{external_token}@#{body}" + def gitlink_repo_address + "#{EduSetting.get("gitlink_repo_domain")}/#{project.owner&.login}/#{project.identifier}.git" end - def gitlink_repo_address - internal_repo_address = "#{EduSetting.get("gitlink_repo_domain")}/#{project.owner&.login}/#{project.identifier}.git" - body = internal_repo_address.split("https://")[1] - return "https://oauth2:#{EduSetting.get("gitlink_admin_token")}@#{body}" + def gitlink_token + EduSetting.get("gitlink_admin_token") end end \ No newline at end of file diff --git a/app/services/reposync/create_sync_repo_service.rb b/app/services/reposync/create_sync_repo_service.rb index 6176e3b7..0f0cc43e 100644 --- a/app/services/reposync/create_sync_repo_service.rb +++ b/app/services/reposync/create_sync_repo_service.rb @@ -1,11 +1,13 @@ class Reposync::CreateSyncRepoService < Reposync::ClientService - attr_accessor :repo_name, :internal_repo_address, :external_repo_address, :sync_granularity, :sync_direction, :enable + attr_accessor :repo_name, :internal_repo_address, :inter_token, :external_repo_address, :exter_token, :sync_granularity, :sync_direction, :enable - def initialize(repo_name, internal_repo_address, external_repo_address, sync_granularity, sync_direction, enable=true) + def initialize(repo_name, internal_repo_address, inter_token, external_repo_address, exter_token, sync_granularity, sync_direction, enable=true) @repo_name = repo_name @internal_repo_address = internal_repo_address + @inter_token = inter_token @external_repo_address = external_repo_address + @exter_token = exter_token @sync_granularity = sync_granularity @sync_direction = sync_direction @enable = enable @@ -22,7 +24,9 @@ class Reposync::CreateSyncRepoService < Reposync::ClientService repo_name: repo_name, enable: enable, internal_repo_address: internal_repo_address, + inter_token: inter_token, external_repo_address: external_repo_address, + exter_token: exter_token, sync_granularity: sync_granularity, sync_direction: sync_direction }.stringify_keys)