self.build

in ee/lib/remote_development/workspace_operations/create/workspace_variables_builder.rb [20:177]


        def self.build(
          name:, dns_zone:, personal_access_token_value:, user_name:, user_email:, workspace_id:,
          vscode_extension_marketplace:, variables:
        )
          vscode_extension_marketplace => {
            service_url: String => vscode_extension_marketplace_service_url,
            item_url: String => vscode_extension_marketplace_item_url,
            resource_url_template: String => vscode_extension_marketplace_resource_url_template,
          }

          internal_variables = [

            
            
            
            {
              key: "GL_WORKSPACE_LOGS_DIR",
              value: WORKSPACE_LOGS_DIR,
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            },
            
            
            
            {
              key: TOKEN_FILE_NAME,
              value: personal_access_token_value,
              variable_type: FILE_TYPE,
              workspace_id: workspace_id
            },
            {
              key: "GL_TOKEN_FILE_PATH",
              value: TOKEN_FILE_PATH,
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            },
            

            
            
            {
              
              
              key: GIT_CREDENTIAL_STORE_SCRIPT_FILE_NAME,
              value: GIT_CREDENTIAL_STORE_SCRIPT,
              variable_type: FILE_TYPE,
              workspace_id: workspace_id
            },
            {
              key: "GIT_CONFIG_COUNT",
              value: "3",
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            },
            {
              key: "GIT_CONFIG_KEY_0",
              value: "credential.helper",
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            },
            {
              key: "GIT_CONFIG_VALUE_0",
              value: GIT_CREDENTIAL_STORE_SCRIPT_FILE_PATH,
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            },
            {
              key: "GIT_CONFIG_KEY_1",
              value: "user.name",
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            },
            {
              key: "GIT_CONFIG_VALUE_1",
              value: user_name,
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            },
            {
              key: "GIT_CONFIG_KEY_2",
              value: "user.email",
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            },
            {
              key: "GIT_CONFIG_VALUE_2",
              value: user_email,
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            },
            

            
            
            
            {
              key: "GL_WORKSPACE_DOMAIN_TEMPLATE",
              value: "${PORT}-#{name}.#{dns_zone}",
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            },
            

            
            
            
            
            
            {
              key: "GL_EDITOR_EXTENSIONS_GALLERY_SERVICE_URL",
              value: vscode_extension_marketplace_service_url,
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            },
            {
              key: "GL_EDITOR_EXTENSIONS_GALLERY_ITEM_URL",
              value: vscode_extension_marketplace_item_url,
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            },
            {
              key: "GL_EDITOR_EXTENSIONS_GALLERY_RESOURCE_URL_TEMPLATE",
              value: vscode_extension_marketplace_resource_url_template,
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            },
            

            
            
            {
              key: "GITLAB_WORKFLOW_INSTANCE_URL",
              value: Gitlab::Routing.url_helpers.root_url,
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            },
            {
              key: "GITLAB_WORKFLOW_TOKEN_FILE",
              value: TOKEN_FILE_PATH,
              variable_type: ENVIRONMENT_TYPE,
              workspace_id: workspace_id
            }
            
          ]

          user_provided_variables = variables.map do |variable|
            {
              key: variable.fetch(:key),
              value: variable.fetch(:value),
              variable_type: variable.fetch(:type),
              user_provided: true,
              workspace_id: workspace_id
            }
          end

          internal_variables + user_provided_variables
        end