Skip to content
Snippets Groups Projects

Persist source sha and target sha for merge pipelines

Merged Shinya Maeda requested to merge persist-source-sha-and-target-sha-for-pipelines into master
All threads resolved!
Compare and
13 files
+ 270
7
Compare changes
  • Side-by-side
  • Inline
Files
13
+ 26
0
@@ -191,6 +191,18 @@ class Pipeline < ActiveRecord::Base
.sort_by_merge_request_pipelines
end
scope :detached_merge_pipelines, -> do
where(source: :merge_request).where('target_sha IS NULL')
end
scope :merge_pipelines, -> do
where(source: :merge_request).where('target_sha IS NOT NULL')
end
scope :mergeable_merge_pipelines, -> (target_branch_sha) do
where(source: :merge_request, target_sha: target_branch_sha)
end
# Returns the pipelines in descending order (= newest first), optionally
# limited to a number of references.
#
@@ -624,6 +636,8 @@ def predefined_variables
variables.append(key: 'CI_COMMIT_DESCRIPTION', value: git_commit_description.to_s)
if merge_request? && merge_request
variables.append(key: 'CI_MERGE_REQUEST_SOURCE_BRANCH_SHA', value: source_sha.to_s)
variables.append(key: 'CI_MERGE_REQUEST_TARGET_BRANCH_SHA', value: target_sha.to_s)
variables.concat(merge_request.predefined_variables)
end
end
@@ -708,6 +722,18 @@ def default_branch?
ref == project.default_branch
end
def detached_merge_pipeline?
merge_request? && target_sha.nil?
end
def merge_pipeline?
merge_request? && target_sha.present?
end
def mergeable_merge_pipeline?
merge_pipeline? && target_sha == merge_request.target_branch_sha
end
private
def ci_yaml_from_repo
Loading