新增:仓库列表和分支列表
This commit is contained in:
parent
7271603248
commit
8b1ef7bf15
|
@ -1,6 +1,11 @@
|
|||
class Api::V1::Projects::SyncRepositoriesController < Api::V1::BaseController
|
||||
before_action :require_public_and_member_above
|
||||
|
||||
def index
|
||||
@sync_repositories = @project.sync_repositories
|
||||
@group_sync_repository = @project.sync_repositories.group(:type, :external_repo_address, :sync_granularity).count
|
||||
end
|
||||
|
||||
def create
|
||||
@sync_repository1, @sync_repository2, @sync_repository_branch1, @sync_repository_branch2 = Api::V1::Projects::SyncRepositories::CreateService.call(@project, sync_repository_params)
|
||||
end
|
||||
|
@ -16,6 +21,12 @@ class Api::V1::Projects::SyncRepositoriesController < Api::V1::BaseController
|
|||
end
|
||||
end
|
||||
|
||||
def branches
|
||||
return render_error("请输入正确的同步项目ID") unless params[:sync_repository_ids].present?
|
||||
@sync_repository_branches = SyncRepositoryBranch.where(sync_repository_id: params[:sync_repository_ids].split(","))
|
||||
@group_sync_repository_branch = @sync_repository_branches.group(:gitlink_branch_name, :external_branch_name).count
|
||||
end
|
||||
|
||||
private
|
||||
def sync_repository_params
|
||||
params.permit(:type, :external_token, :external_repo_address, :sync_granularity, :external_branch_name, :gitlink_branch_name, :first_sync_direction)
|
||||
|
|
|
@ -55,14 +55,13 @@
|
|||
# default_branch :string(255) default("master")
|
||||
# website :string(255)
|
||||
# lesson_url :string(255)
|
||||
# use_blockchain :boolean default("0")
|
||||
# is_pinned :boolean default("0")
|
||||
# recommend_index :integer default("0")
|
||||
# use_blockchain :boolean default("0")
|
||||
# pr_view_admin :boolean default("0")
|
||||
#
|
||||
# Indexes
|
||||
#
|
||||
# index_projects_on_forked_count (forked_count)
|
||||
# index_projects_on_forked_from_project_id (forked_from_project_id)
|
||||
# index_projects_on_identifier (identifier)
|
||||
# index_projects_on_invite_code (invite_code)
|
||||
|
@ -72,7 +71,6 @@
|
|||
# index_projects_on_license_id (license_id)
|
||||
# index_projects_on_name (name)
|
||||
# index_projects_on_platform (platform)
|
||||
# index_projects_on_praises_count (praises_count)
|
||||
# index_projects_on_project_category_id (project_category_id)
|
||||
# index_projects_on_project_language_id (project_language_id)
|
||||
# index_projects_on_project_type (project_type)
|
||||
|
@ -80,7 +78,6 @@
|
|||
# index_projects_on_rgt (rgt)
|
||||
# index_projects_on_status (status)
|
||||
# index_projects_on_updated_on (updated_on)
|
||||
# index_projects_on_user_id (user_id)
|
||||
#
|
||||
|
||||
class Project < ApplicationRecord
|
||||
|
@ -138,6 +135,7 @@ class Project < ApplicationRecord
|
|||
has_many :commit_logs, dependent: :destroy
|
||||
has_many :daily_project_statistics, dependent: :destroy
|
||||
has_one :project_dataset, dependent: :destroy
|
||||
has_many :sync_repositories, dependent: :destroy
|
||||
after_create :incre_user_statistic, :incre_platform_statistic
|
||||
after_save :check_project_members
|
||||
before_save :set_invite_code, :reset_unmember_followed, :set_recommend_and_is_pinned, :reset_cache_data
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
# reposync_branch_id :integer
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
# enable :boolean default("1")
|
||||
#
|
||||
# Indexes
|
||||
#
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
json.total_count @group_sync_repository_branch.keys.count
|
||||
json.sync_repository_branches @group_sync_repository_branch.each do |key|
|
||||
json.gitlink_branch_name key[0][0]
|
||||
json.external_branch_name key[0][1]
|
||||
branches = @sync_repository_branches.where(gitlink_branch_name: key[0][0], external_branch_name: key[0][1])
|
||||
branch = branches.last
|
||||
json.sync_time branch.sync_time
|
||||
json.sync_status branch.sync_status
|
||||
json.enable branch.enable
|
||||
json.reposync_branch_ids branches.pluck(:reposync_branch_id)
|
||||
end
|
|
@ -0,0 +1,7 @@
|
|||
json.total_count @group_sync_repository.keys.count
|
||||
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.sync_repository_ids @sync_repositories.where(type: key[0][0], external_repo_address: key[0][1], sync_granularity: key[0][2]).pluck(:id)
|
||||
end
|
|
@ -78,9 +78,10 @@ defaults format: :json do
|
|||
|
||||
# projects文件夹下的
|
||||
scope module: :projects do
|
||||
resources :sync_repositories, only: [:create] do
|
||||
resources :sync_repositories, only: [:create, :index] do
|
||||
collection do
|
||||
post :sync
|
||||
get :branches
|
||||
end
|
||||
end
|
||||
resource :dataset, only: [:create, :update, :show]
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
class AddEnableToSyncRepositoryBranch < ActiveRecord::Migration[5.2]
|
||||
def change
|
||||
add_column :sync_repository_branches, :enable, :boolean, default: true
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue