diff options
author | Mayra Cabrera <mcabrera@gitlab.com> | 2018-06-07 18:09:14 +0000 |
---|---|---|
committer | Kamil TrzciĆski <ayufan@ayufan.eu> | 2018-06-07 18:09:14 +0000 |
commit | 5370c442dfc0f1009b557cea9ce4dafbfe821569 (patch) | |
tree | 78577884c3f14154b65447763c51384c39dace99 /app/models/project_auto_devops.rb | |
parent | eb75844f2b7ca438039182107dd0526e966b1e6a (diff) | |
download | gitlab-ce-5370c442dfc0f1009b557cea9ce4dafbfe821569.tar.gz |
Resolve "Automatically provide a Deploy Token to projects when Auto DevOps is enabled"
Diffstat (limited to 'app/models/project_auto_devops.rb')
-rw-r--r-- | app/models/project_auto_devops.rb | 21 |
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 |