From 589d2ae2e8e5f22c4981a936f1df062b06c2c744 Mon Sep 17 00:00:00 2001 From: yystopf Date: Wed, 24 Apr 2024 17:06:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E8=AE=B0=E5=BD=95ex?= =?UTF-8?q?ternal=5Ftoken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/v1/projects/sync_repositories_controller.rb | 4 ++-- app/models/sync_repository.rb | 1 + .../api/v1/projects/sync_repositories/create_service.rb | 4 ++-- .../api/v1/projects/sync_repositories/update_service.rb | 4 ++-- .../api/v1/projects/sync_repositories/index.json.jbuilder | 1 + .../20240424085125_add_external_token_to_sync_repository.rb | 5 +++++ 6 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 db/migrate/20240424085125_add_external_token_to_sync_repository.rb diff --git a/app/controllers/api/v1/projects/sync_repositories_controller.rb b/app/controllers/api/v1/projects/sync_repositories_controller.rb index 4f6790373..7a74ecc47 100644 --- a/app/controllers/api/v1/projects/sync_repositories_controller.rb +++ b/app/controllers/api/v1/projects/sync_repositories_controller.rb @@ -3,7 +3,7 @@ class Api::V1::Projects::SyncRepositoriesController < Api::V1::BaseController def index @sync_repositories = @project.sync_repositories - @group_sync_repository = @project.sync_repositories.group(:type, :external_repo_address, :sync_granularity).count + @group_sync_repository = @project.sync_repositories.group(:type, :external_repo_address, :sync_granularity, :external_token).count end def create @@ -15,7 +15,7 @@ class Api::V1::Projects::SyncRepositoriesController < Api::V1::BaseController def update_info return render_error("请输入正确的同步仓库ID") unless params[:sync_repository_ids].present? - Api::V1::Projects::SyncRepositories::UpdateService.call(@project, params[:sync_repository_ids] , sync_repository_update_params) + Api::V1::Projects::SyncRepositories::UpdateService.call(@project, params[:sync_repository_ids], sync_repository_update_params) render_ok rescue Exception => e uid_logger_error(e.message) diff --git a/app/models/sync_repository.rb b/app/models/sync_repository.rb index 7b3af11ca..42579c81f 100644 --- a/app/models/sync_repository.rb +++ b/app/models/sync_repository.rb @@ -11,6 +11,7 @@ # sync_direction :integer # created_at :datetime not null # updated_at :datetime not null +# external_token :string(255) # # Indexes # 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 696174189..5a3fd1bb4 100644 --- a/app/services/api/v1/projects/sync_repositories/create_service.rb +++ b/app/services/api/v1/projects/sync_repositories/create_service.rb @@ -52,8 +52,8 @@ class Api::V1::Projects::SyncRepositories::CreateService < ApplicationService 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) + @sync_repository1 = SyncRepository.create!(project: project, type: type, repo_name: repo_name(1), external_repo_address: external_repo_address, external_token: external_token, 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, external_token: external_token, sync_granularity: sync_granularity, sync_direction: 2) end def create_sync_repository_branch diff --git a/app/services/api/v1/projects/sync_repositories/update_service.rb b/app/services/api/v1/projects/sync_repositories/update_service.rb index 4db4005fe..9b4fec3ec 100644 --- a/app/services/api/v1/projects/sync_repositories/update_service.rb +++ b/app/services/api/v1/projects/sync_repositories/update_service.rb @@ -6,7 +6,7 @@ class Api::V1::Projects::SyncRepositories::UpdateService < ApplicationService validates :external_repo_address, format: { with: CustomRegexp::URL_REGEX, multiline: true, message: "地址格式不正确" } validates :external_token, presence: true - + #Api::V1::Projects::SyncRepositories::UpdateService.call(Project.last, "21,22", {external_repo_address: "https://github.com/viletyy/testdevops.git", external_token:"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"}) def initialize(project, sync_repository_ids, params) @project = project @@ -26,7 +26,7 @@ class Api::V1::Projects::SyncRepositories::UpdateService < ApplicationService def update_sync_repository @sync_repositories.each do |repo| Reposync::UpdateRepoAddrService.call(repo&.repo_name, internal_repo_address, internal_token, external_repo_address, external_token) - repo.update_attributes!({external_repo_address: external_repo_address}) + repo.update_attributes!({external_repo_address: external_repo_address, external_token: external_token}) end end diff --git a/app/views/api/v1/projects/sync_repositories/index.json.jbuilder b/app/views/api/v1/projects/sync_repositories/index.json.jbuilder index f709bd33c..84bbdde5e 100644 --- a/app/views/api/v1/projects/sync_repositories/index.json.jbuilder +++ b/app/views/api/v1/projects/sync_repositories/index.json.jbuilder @@ -3,5 +3,6 @@ json.sync_repositories @group_sync_repository.each do |key| json.type key[0][0] json.external_repo_address key[0][1] json.sync_granularity key[0][2] + json.external_token key[0][3] json.sync_repository_ids @sync_repositories.where(type: key[0][0], external_repo_address: key[0][1], sync_granularity: key[0][2]).pluck(:id) end \ No newline at end of file diff --git a/db/migrate/20240424085125_add_external_token_to_sync_repository.rb b/db/migrate/20240424085125_add_external_token_to_sync_repository.rb new file mode 100644 index 000000000..fde46cab0 --- /dev/null +++ b/db/migrate/20240424085125_add_external_token_to_sync_repository.rb @@ -0,0 +1,5 @@ +class AddExternalTokenToSyncRepository < ActiveRecord::Migration[5.2] + def change + add_column :sync_repositories, :external_token, :string + end +end