diff options
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r-- | app/models/merge_request.rb | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 854325e1fcd..e4608b26339 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -1444,7 +1444,7 @@ class MergeRequest < ApplicationRecord # This method is for looking for active environments which created via pipelines for merge requests. # Since deployments run on a merge request ref (e.g. `refs/merge-requests/:iid/head`), # we cannot look up environments with source branch name. - def environments + def legacy_environments return Environment.none unless actual_head_pipeline&.merge_request? build_for_actual_head_pipeline = Ci::Build.latest.where(pipeline: actual_head_pipeline) @@ -1458,6 +1458,14 @@ class MergeRequest < ApplicationRecord Environment.where(project: project, name: environments) end + def environments_in_head_pipeline + if ::Feature.enabled?(:fix_related_environments_for_merge_requests, target_project, default_enabled: :yaml) + actual_head_pipeline&.environments_in_self_and_descendants || Environment.none + else + legacy_environments + end + end + def fetch_ref! target_project.repository.fetch_source_branch!(source_project.repository, source_branch, ref_path) end |