新增:仓库列表和分支列表

This commit is contained in:
yystopf 2024-04-17 10:54:23 +08:00
parent 7271603248
commit 8b1ef7bf15
7 changed files with 39 additions and 5 deletions

View File

@ -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)

View File

@ -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

View File

@ -11,6 +11,7 @@
# reposync_branch_id :integer
# created_at :datetime not null
# updated_at :datetime not null
# enable :boolean default("1")
#
# Indexes
#

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -0,0 +1,5 @@
class AddEnableToSyncRepositoryBranch < ActiveRecord::Migration[5.2]
def change
add_column :sync_repository_branches, :enable, :boolean, default: true
end
end