新增:exter_token和inter_token

This commit is contained in:
yystopf 2024-04-24 15:17:13 +08:00
parent e9237d7789
commit 9c32cd8769
3 changed files with 15 additions and 12 deletions

View File

@ -44,7 +44,7 @@ class Api::V1::Projects::SyncRepositoriesController < Api::V1::BaseController
def change_enable def change_enable
return render_error("请输入正确的分支名称") if params[:gitlink_branch_name].blank? || params[:external_branch_name].blank? 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]) @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]}) if @sync_repository_branches.update_all({enable: params[:enable]})
@sync_repository_branches.each do |branch| @sync_repository_branches.each do |branch|

View File

@ -49,8 +49,9 @@ class Api::V1::Projects::SyncRepositories::CreateService < ApplicationService
private private
def create_sync_repository def create_sync_repository
repository1 = Reposync::CreateSyncRepoService.call(repo_name(1), gitlink_repo_address, act_external_repo_address, sync_granularity, 1) 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, act_external_repo_address, sync_granularity, 2) 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_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_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 end
@ -58,6 +59,7 @@ class Api::V1::Projects::SyncRepositories::CreateService < ApplicationService
def create_sync_repository_branch def create_sync_repository_branch
branch1 = Reposync::CreateSyncBranchService.call(repo_name(1),gitlink_branch_name, external_branch_name) 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) 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_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"]) @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 end
@ -91,14 +93,11 @@ class Api::V1::Projects::SyncRepositories::CreateService < ApplicationService
end end
end end
def act_external_repo_address def gitlink_repo_address
body = external_repo_address.split("https://")[1] "#{EduSetting.get("gitlink_repo_domain")}/#{project.owner&.login}/#{project.identifier}.git"
return "https://oauth2:#{external_token}@#{body}"
end end
def gitlink_repo_address def gitlink_token
internal_repo_address = "#{EduSetting.get("gitlink_repo_domain")}/#{project.owner&.login}/#{project.identifier}.git" EduSetting.get("gitlink_admin_token")
body = internal_repo_address.split("https://")[1]
return "https://oauth2:#{EduSetting.get("gitlink_admin_token")}@#{body}"
end end
end end

View File

@ -1,11 +1,13 @@
class Reposync::CreateSyncRepoService < Reposync::ClientService 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 @repo_name = repo_name
@internal_repo_address = internal_repo_address @internal_repo_address = internal_repo_address
@inter_token = inter_token
@external_repo_address = external_repo_address @external_repo_address = external_repo_address
@exter_token = exter_token
@sync_granularity = sync_granularity @sync_granularity = sync_granularity
@sync_direction = sync_direction @sync_direction = sync_direction
@enable = enable @enable = enable
@ -22,7 +24,9 @@ class Reposync::CreateSyncRepoService < Reposync::ClientService
repo_name: repo_name, repo_name: repo_name,
enable: enable, enable: enable,
internal_repo_address: internal_repo_address, internal_repo_address: internal_repo_address,
inter_token: inter_token,
external_repo_address: external_repo_address, external_repo_address: external_repo_address,
exter_token: exter_token,
sync_granularity: sync_granularity, sync_granularity: sync_granularity,
sync_direction: sync_direction sync_direction: sync_direction
}.stringify_keys) }.stringify_keys)