diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/deployment.rb | 10 | ||||
-rw-r--r-- | app/models/environment.rb | 4 |
2 files changed, 12 insertions, 2 deletions
diff --git a/app/models/deployment.rb b/app/models/deployment.rb index 07d7e19e70d..cde6598fc7b 100644 --- a/app/models/deployment.rb +++ b/app/models/deployment.rb @@ -11,7 +11,7 @@ class Deployment < ActiveRecord::Base delegate :name, to: :environment, prefix: true - after_save :keep_around_commit + after_save :create_ref def commit project.commit(sha) @@ -30,7 +30,7 @@ class Deployment < ActiveRecord::Base end def keep_around_commit - project.repository.keep_around(self.sha) + project.repository.fetch_ref(project.repository.path_to_repo, ref, ref_path) end def manual_actions @@ -76,4 +76,10 @@ class Deployment < ActiveRecord::Base where.not(id: self.id). take end + + private + + def ref_path + "#{environment.ref_path}#{id}" + end end diff --git a/app/models/environment.rb b/app/models/environment.rb index 49e0a20640c..843f85883a1 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -47,4 +47,8 @@ class Environment < ActiveRecord::Base def update_merge_request_metrics? self.name == "production" end + + def ref_path + "refs/environments/#{Shellwords.shellescape(name)}/" + end end |