diff --git a/app/services/security/ci_configuration/base_create_service.rb b/app/services/security/ci_configuration/base_create_service.rb index ea77cd98ba3..7f3b66d40e1 100644 --- a/app/services/security/ci_configuration/base_create_service.rb +++ b/app/services/security/ci_configuration/base_create_service.rb @@ -41,7 +41,7 @@ module Security end def existing_gitlab_ci_content - @gitlab_ci_yml ||= project.repository.gitlab_ci_yml_for(project.repository.root_ref_sha) + @gitlab_ci_yml ||= project.ci_config_for(project.repository.root_ref_sha) YAML.safe_load(@gitlab_ci_yml) if @gitlab_ci_yml end diff --git a/app/services/security/ci_configuration/container_scanning_create_service.rb b/app/services/security/ci_configuration/container_scanning_create_service.rb index 788533575e6..da2f1ac0981 100644 --- a/app/services/security/ci_configuration/container_scanning_create_service.rb +++ b/app/services/security/ci_configuration/container_scanning_create_service.rb @@ -6,7 +6,8 @@ module Security private def action - Security::CiConfiguration::ContainerScanningBuildAction.new(project.auto_devops_enabled?, existing_gitlab_ci_content).generate + Security::CiConfiguration::ContainerScanningBuildAction.new(project.auto_devops_enabled?, existing_gitlab_ci_content, + project.ci_config_path).generate end def next_branch diff --git a/app/services/security/ci_configuration/dependency_scanning_create_service.rb b/app/services/security/ci_configuration/dependency_scanning_create_service.rb index 71e8d5025ae..b11eccc680c 100644 --- a/app/services/security/ci_configuration/dependency_scanning_create_service.rb +++ b/app/services/security/ci_configuration/dependency_scanning_create_service.rb @@ -6,7 +6,8 @@ module Security private def action - Security::CiConfiguration::DependencyScanningBuildAction.new(project.auto_devops_enabled?, existing_gitlab_ci_content).generate + Security::CiConfiguration::DependencyScanningBuildAction.new(project.auto_devops_enabled?, existing_gitlab_ci_content, + project.ci_config_path).generate end def next_branch diff --git a/app/services/security/ci_configuration/sast_create_service.rb b/app/services/security/ci_configuration/sast_create_service.rb index 47e01847b17..d78e22f1fe1 100644 --- a/app/services/security/ci_configuration/sast_create_service.rb +++ b/app/services/security/ci_configuration/sast_create_service.rb @@ -26,7 +26,7 @@ module Security nil end - Security::CiConfiguration::SastBuildAction.new(project.auto_devops_enabled?, params, existing_content).generate + Security::CiConfiguration::SastBuildAction.new(project.auto_devops_enabled?, params, existing_content, project.ci_config_path).generate end def next_branch diff --git a/app/services/security/ci_configuration/sast_iac_create_service.rb b/app/services/security/ci_configuration/sast_iac_create_service.rb index 80e9cf963da..fbc65484216 100644 --- a/app/services/security/ci_configuration/sast_iac_create_service.rb +++ b/app/services/security/ci_configuration/sast_iac_create_service.rb @@ -6,7 +6,8 @@ module Security private def action - Security::CiConfiguration::SastIacBuildAction.new(project.auto_devops_enabled?, existing_gitlab_ci_content).generate + Security::CiConfiguration::SastIacBuildAction.new(project.auto_devops_enabled?, existing_gitlab_ci_content, + project.ci_config_path).generate end def next_branch diff --git a/app/services/security/ci_configuration/secret_detection_create_service.rb b/app/services/security/ci_configuration/secret_detection_create_service.rb index ff3458d36fc..ca5138b6ed6 100644 --- a/app/services/security/ci_configuration/secret_detection_create_service.rb +++ b/app/services/security/ci_configuration/secret_detection_create_service.rb @@ -6,7 +6,8 @@ module Security private def action - Security::CiConfiguration::SecretDetectionBuildAction.new(project.auto_devops_enabled?, existing_gitlab_ci_content).generate + Security::CiConfiguration::SecretDetectionBuildAction.new(project.auto_devops_enabled?, existing_gitlab_ci_content, + project.ci_config_path).generate end def next_branch diff --git a/lib/security/ci_configuration/base_build_action.rb b/lib/security/ci_configuration/base_build_action.rb index 6012067fb53..9c2670144e3 100644 --- a/lib/security/ci_configuration/base_build_action.rb +++ b/lib/security/ci_configuration/base_build_action.rb @@ -3,9 +3,10 @@ module Security module CiConfiguration class BaseBuildAction - def initialize(auto_devops_enabled, existing_gitlab_ci_content) + def initialize(auto_devops_enabled, existing_gitlab_ci_content, ci_config_path = ::Ci::Pipeline::DEFAULT_CONFIG_PATH) @auto_devops_enabled = auto_devops_enabled @existing_gitlab_ci_content = existing_gitlab_ci_content || {} + @ci_config_path = ci_config_path || ::Ci::Pipeline::DEFAULT_CONFIG_PATH end def generate @@ -13,7 +14,7 @@ module Security update_existing_content! - { action: action, file_path: '.gitlab-ci.yml', content: prepare_existing_content, default_values_overwritten: @default_values_overwritten } + { action: action, file_path: @ci_config_path, content: prepare_existing_content, default_values_overwritten: @default_values_overwritten } end private diff --git a/lib/security/ci_configuration/sast_build_action.rb b/lib/security/ci_configuration/sast_build_action.rb index 3fa5e9c7177..63f16a1bebe 100644 --- a/lib/security/ci_configuration/sast_build_action.rb +++ b/lib/security/ci_configuration/sast_build_action.rb @@ -3,8 +3,8 @@ module Security module CiConfiguration class SastBuildAction < BaseBuildAction - def initialize(auto_devops_enabled, params, existing_gitlab_ci_content) - super(auto_devops_enabled, existing_gitlab_ci_content) + def initialize(auto_devops_enabled, params, existing_gitlab_ci_content, ci_config_path = ::Ci::Pipeline::DEFAULT_CONFIG_PATH) + super(auto_devops_enabled, existing_gitlab_ci_content, ci_config_path) @variables = variables(params) @default_sast_values = default_sast_values(params) @default_values_overwritten = false diff --git a/spec/support/shared_examples/services/security/ci_configuration/create_service_shared_examples.rb b/spec/support/shared_examples/services/security/ci_configuration/create_service_shared_examples.rb index 538fd2bb513..105c4247ff7 100644 --- a/spec/support/shared_examples/services/security/ci_configuration/create_service_shared_examples.rb +++ b/spec/support/shared_examples/services/security/ci_configuration/create_service_shared_examples.rb @@ -76,6 +76,18 @@ RSpec.shared_examples_for 'services security ci configuration create service' do end end + context 'when the project has a non-default ci config file' do + before do + project.ci_config_path = 'non-default/.gitlab-ci.yml' + end + + it 'does track the snowplow event' do + subject + + expect_snowplow_event(**snowplow_event) + end + end + unless skip_w_params context 'with parameters' do let(:params) { non_empty_params }