diff options
author | Douwe Maan <douwe@gitlab.com> | 2016-08-15 15:29:26 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2016-08-15 15:29:26 +0000 |
commit | 06e3bb9f232329674bdc162dc8f973a19b03f3c4 (patch) | |
tree | 171ca3475ea988547c9510b72646fe0edb351eb1 /app/models | |
parent | 9aa68b877fe2feda7110703f591dc60622422010 (diff) | |
parent | 07fc2f852a0b4136b6d97c1d9773819c47e7e8e7 (diff) | |
download | gitlab-ce-06e3bb9f232329674bdc162dc8f973a19b03f3c4.tar.gz |
Merge branch 'zj-deployment-status-on-mr' into 'master'
Show deployment status on a MR view
## What are the relevant issue numbers?
Resolves #19571, one in the list of #19992
## Screenshots (if relevant)
external_url = nil

external_url != nil

Note, the timings are weird between merging and deploying, that is because I did it in the wrong order.
## Does this MR meet the acceptance criteria?
- [X] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- Tests
- [x] Added for this feature/bug
- [x] All builds are passing
See merge request !5622
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/deployment.rb | 6 | ||||
-rw-r--r-- | app/models/environment.rb | 6 | ||||
-rw-r--r-- | app/models/merge_request.rb | 8 |
3 files changed, 20 insertions, 0 deletions
diff --git a/app/models/deployment.rb b/app/models/deployment.rb index 1a7cd60817e..1e338889714 100644 --- a/app/models/deployment.rb +++ b/app/models/deployment.rb @@ -36,4 +36,10 @@ class Deployment < ActiveRecord::Base def manual_actions deployable.try(:other_actions) end + + def includes_commit?(commit) + return false unless commit + + project.repository.is_ancestor?(commit.id, sha) + end end diff --git a/app/models/environment.rb b/app/models/environment.rb index baed106e8c8..75e6f869786 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -25,4 +25,10 @@ class Environment < ActiveRecord::Base def nullify_external_url self.external_url = nil if self.external_url.blank? end + + def includes_commit?(commit) + return false unless last_deployment + + last_deployment.includes_commit?(commit) + end end diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index f6d0d0c98f5..fe799382fd0 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -591,6 +591,14 @@ class MergeRequest < ActiveRecord::Base !pipeline || pipeline.success? end + def environments + return unless diff_head_commit + + target_project.environments.select do |environment| + environment.includes_commit?(diff_head_commit) + end + end + def state_human_name if merged? "Merged" |