Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMayra Cabrera <mcabrera@gitlab.com>2018-03-19 19:11:12 +0300
committerMayra Cabrera <mcabrera@gitlab.com>2018-04-07 05:20:16 +0300
commitdb18993f652425b72c4b854e18a002e0ec44b196 (patch)
tree7466e5f6b154bd79e72c13a5021d92eb9d7e4a13 /app/services/deploy_tokens
parentaade8b3652573db40e7b777c72caa922b0bc12ef (diff)
Create barebones for Deploytoken
Includes: - Model, factories, create service and controller actions - As usual, includes specs for everything - Builds UI (copy from PAT) - Add revoke action Closes #31591
Diffstat (limited to 'app/services/deploy_tokens')
-rw-r--r--app/services/deploy_tokens/create_service.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/app/services/deploy_tokens/create_service.rb b/app/services/deploy_tokens/create_service.rb
new file mode 100644
index 00000000000..e93c021557e
--- /dev/null
+++ b/app/services/deploy_tokens/create_service.rb
@@ -0,0 +1,24 @@
+module DeployTokens
+ class CreateService < BaseService
+ REDIS_EXPIRY_TIME = 3.minutes
+
+ def execute
+ @deploy_token = @project.deploy_tokens.create(params)
+ store_in_redis if @deploy_token.persisted?
+
+ @deploy_token
+ end
+
+ private
+
+ def store_in_redis
+ Gitlab::Redis::SharedState.with do |redis|
+ redis.set(deploy_token_key, @deploy_token.token, ex: REDIS_EXPIRY_TIME)
+ end
+ end
+
+ def deploy_token_key
+ DeployToken.redis_shared_state_key(current_user.id)
+ end
+ end
+end