diff options
Diffstat (limited to 'app/controllers/projects/deployments_controller.rb')
-rw-r--r-- | app/controllers/projects/deployments_controller.rb | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/app/controllers/projects/deployments_controller.rb b/app/controllers/projects/deployments_controller.rb index 321f8324866..edbe624a31a 100644 --- a/app/controllers/projects/deployments_controller.rb +++ b/app/controllers/projects/deployments_controller.rb @@ -8,11 +8,18 @@ class Projects::DeploymentsController < Projects::ApplicationController def terminal_websocket_authorize Gitlab::Workhorse.verify_api_request!(request.headers) - openshift_project = project.variables.find('CI_PROJECT_NAME').to_s - openshift_app = project.variables.find('APP').to_s - if openshift_project.present? && openshift_app.present? + + variables = Hash[*%w[ + openshift_project CI_PROJECT_NAME + openshift_app APP + openshift_server OPENSHIFT_SERVER + openshift_token OPENSHIFT_TOKEN + ]].map { |json_key, variable_key| [json_key, project.variables.find_by(key: variable_key)] }.to_h + + # TODO: restrict access: this allows even 'guests' to have terminal access + if variables.values.all?(&:present?) set_workhorse_internal_api_content_type - render json: {openshift_app: openshift_app, openshift_project: openshift_project} + render json: variables.map { |k, v| [k, v.value] }.to_h else render text: 'Not found', status: 404 end |