summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorMayra Cabrera <mcabrera@gitlab.com>2018-06-07 18:09:14 +0000
committerKamil TrzciƄski <ayufan@ayufan.eu>2018-06-07 18:09:14 +0000
commit5370c442dfc0f1009b557cea9ce4dafbfe821569 (patch)
tree78577884c3f14154b65447763c51384c39dace99 /app/models
parenteb75844f2b7ca438039182107dd0526e966b1e6a (diff)
downloadgitlab-ce-5370c442dfc0f1009b557cea9ce4dafbfe821569.tar.gz
Resolve "Automatically provide a Deploy Token to projects when Auto DevOps is enabled"
Diffstat (limited to 'app/models')
-rw-r--r--app/models/project_auto_devops.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/app/models/project_auto_devops.rb b/app/models/project_auto_devops.rb
index ed6c1eddbc1..c6c990dfa00 100644
--- a/app/models/project_auto_devops.rb
+++ b/app/models/project_auto_devops.rb
@@ -6,6 +6,8 @@ class ProjectAutoDevops < ActiveRecord::Base
validates :domain, allow_blank: true, hostname: { allow_numeric_hostname: true }
+ after_save :create_gitlab_deploy_token, if: :needs_to_create_deploy_token?
+
def instance_domain
Gitlab::CurrentSettings.auto_devops_domain
end
@@ -22,4 +24,23 @@ class ProjectAutoDevops < ActiveRecord::Base
end
end
end
+
+ private
+
+ def create_gitlab_deploy_token
+ project.deploy_tokens.create!(
+ name: DeployToken::GITLAB_DEPLOY_TOKEN_NAME,
+ read_registry: true
+ )
+ end
+
+ def needs_to_create_deploy_token?
+ auto_devops_enabled? &&
+ !project.public? &&
+ !project.deploy_tokens.find_by(name: DeployToken::GITLAB_DEPLOY_TOKEN_NAME).present?
+ end
+
+ def auto_devops_enabled?
+ Gitlab::CurrentSettings.auto_devops_enabled? || enabled?
+ end
end