Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/ci/catalog/resources/validate_service.rb')
-rw-r--r--app/services/ci/catalog/resources/validate_service.rb26
1 files changed, 17 insertions, 9 deletions
diff --git a/app/services/ci/catalog/resources/validate_service.rb b/app/services/ci/catalog/resources/validate_service.rb
index 9e8986ba6fc..0e842fb7405 100644
--- a/app/services/ci/catalog/resources/validate_service.rb
+++ b/app/services/ci/catalog/resources/validate_service.rb
@@ -4,7 +4,7 @@ module Ci
module Catalog
module Resources
class ValidateService
- attr_reader :project
+ MINIMUM_AMOUNT_OF_COMPONENTS = 1
def initialize(project, ref)
@project = project
@@ -13,30 +13,38 @@ module Ci
end
def execute
- check_project_readme
- check_project_description
+ verify_presence_project_readme
+ verify_presence_project_description
+ scan_directory_for_components
if errors.empty?
ServiceResponse.success
else
- ServiceResponse.error(message: errors.join(' , '))
+ ServiceResponse.error(message: errors.join(', '))
end
end
private
- attr_reader :ref, :errors
+ attr_reader :project, :ref, :errors
- def check_project_description
+ def verify_presence_project_readme
+ return if project_has_readme?
+
+ errors << 'Project must have a README'
+ end
+
+ def verify_presence_project_description
return if project.description.present?
errors << 'Project must have a description'
end
- def check_project_readme
- return if project_has_readme?
+ def scan_directory_for_components
+ return if Ci::Catalog::ComponentsProject.new(project).fetch_component_paths(ref,
+ limit: MINIMUM_AMOUNT_OF_COMPONENTS).any?
- errors << 'Project must have a README'
+ errors << 'Project must contain components. Ensure you are using the correct directory structure'
end
def project_has_readme?