| @@ -283,7 +283,7 @@ class ProjectsController < ApplicationController | |||||
| private | private | ||||
| def project_params | def project_params | ||||
| params.permit(:user_id, :name, :description, :repository_name, :website, :lesson_url, :default_branch, :identifier, | params.permit(:user_id, :name, :description, :repository_name, :website, :lesson_url, :default_branch, :identifier, | ||||
| :project_category_id, :project_language_id, :license_id, :ignore_id, :private) | |||||
| :project_category_id, :project_language_id, :license_id, :ignore_id, :private, :auto_init) | |||||
| end | end | ||||
| def mirror_params | def mirror_params | ||||
| @@ -60,8 +60,9 @@ class RepositoriesController < ApplicationController | |||||
| @entries = Gitea::Repository::Entries::ListService.new(@owner, @project.identifier, ref: @ref).call | @entries = Gitea::Repository::Entries::ListService.new(@owner, @project.identifier, ref: @ref).call | ||||
| @entries = @entries.present? ? @entries.sort_by{ |hash| hash['type'] } : [] | @entries = @entries.present? ? @entries.sort_by{ |hash| hash['type'] } : [] | ||||
| @path = GiteaService.gitea_config[:domain]+"/#{@project.owner.login}/#{@project.identifier}/raw/branch/#{@ref}/" | @path = GiteaService.gitea_config[:domain]+"/#{@project.owner.login}/#{@project.identifier}/raw/branch/#{@ref}/" | ||||
| @repo_detail = $gitea_client.get_repos_by_owner_repo(@owner.login, @project.identifier) | |||||
| return render_not_found if @entries.blank? && !@repo_detail["empty"] | |||||
| end | end | ||||
| return render_not_found if @entries.blank? | |||||
| end | end | ||||
| def top_counts | def top_counts | ||||
| @@ -1,6 +1,6 @@ | |||||
| class Projects::CreateForm < BaseForm | class Projects::CreateForm < BaseForm | ||||
| attr_accessor :user_id, :name, :description, :repository_name, :project_category_id, | attr_accessor :user_id, :name, :description, :repository_name, :project_category_id, | ||||
| :project_language_id, :ignore_id, :license_id, :private, :owner | |||||
| :project_language_id, :ignore_id, :license_id, :private, :owner, :auto_init | |||||
| validates :user_id, :name, :repository_name, presence: true | validates :user_id, :name, :repository_name, presence: true | ||||
| validates :repository_name, format: { with: CustomRegexp::REPOSITORY_NAME_REGEX, multiline: true, message: "项目标识只能包含数字,字母,下划线(_),中划线(-),英文句号(.),必须以数字和字母开头,不能以下划线/中划线/英文句号开头和结尾" } | validates :repository_name, format: { with: CustomRegexp::REPOSITORY_NAME_REGEX, multiline: true, message: "项目标识只能包含数字,字母,下划线(_),中划线(-),英文句号(.),必须以数字和字母开头,不能以下划线/中划线/英文句号开头和结尾" } | ||||
| @@ -9,7 +9,7 @@ class Projects::CreateForm < BaseForm | |||||
| validates :repository_name, length: { maximum: 100 } | validates :repository_name, length: { maximum: 100 } | ||||
| validates :description, length: { maximum: 200 } | validates :description, length: { maximum: 200 } | ||||
| validate :check_ignore, :check_license, :check_owner, :check_max_repo_creation | |||||
| validate :check_ignore, :check_license, :check_auto_init, :check_owner, :check_max_repo_creation | |||||
| validate do | validate do | ||||
| check_project_category(project_category_id) | check_project_category(project_category_id) | ||||
| check_project_language(project_language_id) | check_project_language(project_language_id) | ||||
| @@ -25,6 +25,10 @@ class Projects::CreateForm < BaseForm | |||||
| raise "ignore_id值无效." if ignore_id && Ignore.find_by(id: ignore_id).blank? | raise "ignore_id值无效." if ignore_id && Ignore.find_by(id: ignore_id).blank? | ||||
| end | end | ||||
| def check_auto_init | |||||
| raise "auto_init值无效." if ignore_id && license_id && !auto_init | |||||
| end | |||||
| def check_owner | def check_owner | ||||
| @project_owner = Owner.find_by(id: user_id) | @project_owner = Owner.find_by(id: user_id) | ||||
| raise "user_id值无效." if user_id && @project_owner.blank? | raise "user_id值无效." if user_id && @project_owner.blank? | ||||
| @@ -61,7 +61,8 @@ class Projects::CreateService < ApplicationService | |||||
| { | { | ||||
| hidden: !repo_is_public, | hidden: !repo_is_public, | ||||
| user_id: params[:user_id], | user_id: params[:user_id], | ||||
| identifier: params[:repository_name] | |||||
| identifier: params[:repository_name], | |||||
| auto_init: params[:auto_init] | |||||
| } | } | ||||
| end | end | ||||
| @@ -67,7 +67,7 @@ class Repositories::CreateService < ApplicationService | |||||
| end | end | ||||
| def repository_params | def repository_params | ||||
| params.merge(project_id: project.id) | |||||
| params.merge(project_id: project.id).except(:auto_init) | |||||
| end | end | ||||
| def gitea_repository_params | def gitea_repository_params | ||||
| @@ -75,7 +75,7 @@ class Repositories::CreateService < ApplicationService | |||||
| name: params[:identifier], | name: params[:identifier], | ||||
| private: params[:hidden], | private: params[:hidden], | ||||
| # readme: "ReadMe", | # readme: "ReadMe", | ||||
| "auto_init": true, | |||||
| auto_init: params[:auto_init], | |||||
| # "description": "string", | # "description": "string", | ||||
| # "gitignores": "string", | # "gitignores": "string", | ||||
| # "issue_labels": "string", | # "issue_labels": "string", | ||||
| @@ -89,7 +89,7 @@ class Repositories::CreateService < ApplicationService | |||||
| license = project.license | license = project.license | ||||
| hash = hash.merge(license: license.name) if license | hash = hash.merge(license: license.name) if license | ||||
| hash = hash.merge(gitignores: ignore.name) if ignore | hash = hash.merge(gitignores: ignore.name) if ignore | ||||
| hash = hash.merge(auto_init: true) if ignore || license | |||||
| hash = hash.merge(auto_init: true) if ignore && license | |||||
| hash | hash | ||||
| end | end | ||||
| end | end | ||||
| @@ -1,3 +1,4 @@ | |||||
| json.empty @result[:repo]["empty"] | |||||
| json.content @project.content | json.content @project.content | ||||
| json.website @project.website | json.website @project.website | ||||
| json.lesson_url @project.lesson_url | json.lesson_url @project.lesson_url | ||||