diff options
| author | Z.J. van de Weg <zegerjan@gitlab.com> | 2016-08-02 14:01:22 +0200 |
|---|---|---|
| committer | Z.J. van de Weg <zegerjan@gitlab.com> | 2016-08-11 21:29:57 +0200 |
| commit | 49f72e705fa225175834b5e6b2b1f78f1f608b9c (patch) | |
| tree | eeb8ab64c3aa954989b420b58b3f646e83782085 /app/models | |
| parent | cbafc9ef301dbdc3c3205541cd0f8e31e28ece7a (diff) | |
| download | gitlab-ce-49f72e705fa225175834b5e6b2b1f78f1f608b9c.tar.gz | |
Show deployment status on a MR view
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/deployment.rb | 7 | ||||
| -rw-r--r-- | app/models/environment.rb | 6 | ||||
| -rw-r--r-- | app/models/merge_request.rb | 6 |
3 files changed, 19 insertions, 0 deletions
diff --git a/app/models/deployment.rb b/app/models/deployment.rb index 1a7cd60817e..67a4f3998ec 100644 --- a/app/models/deployment.rb +++ b/app/models/deployment.rb @@ -36,4 +36,11 @@ class Deployment < ActiveRecord::Base def manual_actions deployable.try(:other_actions) end + + def deployed_to(ref) + commit = project.commit(ref) + return false unless commit + + project.repository.merge_base(commit.id, sha) == commit.id + end end diff --git a/app/models/environment.rb b/app/models/environment.rb index baed106e8c8..f6fdb8d1ecf 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 deployed_to?(ref) + return unless last_deployment + + last_deployment.deployed_to(ref) + end end diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index b1fb3ce5d69..85e4d1f6b51 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -590,6 +590,12 @@ class MergeRequest < ActiveRecord::Base !pipeline || pipeline.success? end + def environments + target_project.environments.select do |environment| + environment.deployed_to?(ref_path) + end + end + def state_human_name if merged? "Merged" |
