Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
d17008f99e
commit
c64b892786
17 changed files with 42 additions and 78 deletions
|
@ -16,7 +16,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController
|
|||
push_frontend_feature_flag(:ci_instance_variables_ui, default_enabled: true)
|
||||
end
|
||||
|
||||
VALID_SETTING_PANELS = %w(general integrations repository
|
||||
VALID_SETTING_PANELS = %w(general repository
|
||||
ci_cd reporting metrics_and_profiling
|
||||
network preferences).freeze
|
||||
|
||||
|
@ -32,12 +32,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController
|
|||
end
|
||||
|
||||
def integrations
|
||||
if Feature.enabled?(:instance_level_integrations)
|
||||
@integrations = Service.find_or_initialize_instances.sort_by(&:title)
|
||||
else
|
||||
set_application_setting
|
||||
perform_update if submitted?
|
||||
end
|
||||
@integrations = Service.find_or_initialize_instances.sort_by(&:title)
|
||||
end
|
||||
|
||||
def update
|
||||
|
|
|
@ -12,7 +12,7 @@ class Admin::IntegrationsController < Admin::ApplicationController
|
|||
end
|
||||
|
||||
def integrations_enabled?
|
||||
Feature.enabled?(:instance_level_integrations)
|
||||
true
|
||||
end
|
||||
|
||||
def scoped_edit_integration_path(integration)
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
= _('Amazon EKS integration allows you to provision EKS clusters from GitLab.')
|
||||
|
||||
.settings-content
|
||||
= form_for @application_setting, url: integrations_admin_application_settings_path(anchor: 'js-eks-settings'), html: { class: 'fieldset-form' } do |f|
|
||||
= form_for @application_setting, url: general_admin_application_settings_path(anchor: 'js-eks-settings'), html: { class: 'fieldset-form' } do |f|
|
||||
= form_errors(@application_setting)
|
||||
|
||||
%fieldset
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
%p
|
||||
= _('Allow rendering of PlantUML diagrams in Asciidoc documents.')
|
||||
.settings-content
|
||||
= form_for @application_setting, url: integrations_admin_application_settings_path(anchor: 'js-plantuml-settings'), html: { class: 'fieldset-form' } do |f|
|
||||
= form_for @application_setting, url: general_admin_application_settings_path(anchor: 'js-plantuml-settings'), html: { class: 'fieldset-form' } do |f|
|
||||
= form_errors(@application_setting) if expanded
|
||||
|
||||
%fieldset
|
||||
|
|
|
@ -8,8 +8,7 @@
|
|||
%p
|
||||
= _('Configure the %{link} integration.').html_safe % { link: link_to('Snowplow', 'https://snowplowanalytics.com/', target: '_blank') }
|
||||
.settings-content
|
||||
|
||||
= form_for @application_setting, url: integrations_admin_application_settings_path(anchor: 'js-snowplow-settings'), html: { class: 'fieldset-form' } do |f|
|
||||
= form_for @application_setting, url: general_admin_application_settings_path(anchor: 'js-snowplow-settings'), html: { class: 'fieldset-form' } do |f|
|
||||
= form_errors(@application_setting) if expanded
|
||||
|
||||
%fieldset
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
|
||||
.settings-content
|
||||
= form_for @application_setting, url: integrations_admin_application_settings_path(anchor: 'js-sourcegraph-settings'), html: { class: 'fieldset-form' } do |f|
|
||||
= form_for @application_setting, url: general_admin_application_settings_path(anchor: 'js-sourcegraph-settings'), html: { class: 'fieldset-form' } do |f|
|
||||
= form_errors(@application_setting)
|
||||
|
||||
%fieldset
|
||||
|
|
|
@ -8,8 +8,7 @@
|
|||
%p
|
||||
= _('Control the display of third party offers.')
|
||||
.settings-content
|
||||
|
||||
= form_for @application_setting, url: integrations_admin_application_settings_path(anchor: 'js-third-party-offers-settings'), html: { class: 'fieldset-form' } do |f|
|
||||
= form_for @application_setting, url: general_admin_application_settings_path(anchor: 'js-third-party-offers-settings'), html: { class: 'fieldset-form' } do |f|
|
||||
= form_errors(@application_setting) if expanded
|
||||
|
||||
%fieldset
|
||||
|
|
|
@ -116,11 +116,10 @@
|
|||
.settings-content
|
||||
#js-maintenance-mode-settings
|
||||
|
||||
- if Feature.enabled?(:instance_level_integrations)
|
||||
= render_if_exists 'admin/application_settings/elasticsearch_form'
|
||||
= render 'admin/application_settings/plantuml'
|
||||
= render 'admin/application_settings/sourcegraph'
|
||||
= render_if_exists 'admin/application_settings/slack'
|
||||
= render 'admin/application_settings/third_party_offers'
|
||||
= render 'admin/application_settings/snowplow'
|
||||
= render 'admin/application_settings/eks'
|
||||
= render_if_exists 'admin/application_settings/elasticsearch_form'
|
||||
= render 'admin/application_settings/plantuml'
|
||||
= render 'admin/application_settings/sourcegraph'
|
||||
= render_if_exists 'admin/application_settings/slack'
|
||||
= render 'admin/application_settings/third_party_offers'
|
||||
= render 'admin/application_settings/snowplow'
|
||||
= render 'admin/application_settings/eks'
|
||||
|
|
|
@ -2,29 +2,19 @@
|
|||
- page_title _('Integrations')
|
||||
- @content_class = 'limit-container-width' unless fluid_layout
|
||||
|
||||
- if Feature.enabled?(:instance_level_integrations)
|
||||
- if show_admin_integrations_moved?
|
||||
.gl-alert.gl-alert-info.js-admin-integrations-moved.mt-3{ role: 'alert', data: { feature_id: UserCalloutsHelper::ADMIN_INTEGRATIONS_MOVED, dismiss_endpoint: user_callouts_path } }
|
||||
= sprite_icon('information-o', css_class: 'gl-icon gl-alert-icon gl-alert-icon-no-title')
|
||||
%button.js-close.gl-alert-dismiss{ type: 'button', 'aria-label' => _('Dismiss') }
|
||||
= sprite_icon('close', css_class: 'gl-icon')
|
||||
.gl-alert-body
|
||||
%h4.gl-alert-title= s_('AdminSettings|Some settings have moved')
|
||||
= html_escape_once(s_('AdminSettings|Elasticsearch, PlantUML, Slack application, Third party offers, Snowplow, Amazon EKS have moved to Settings > General.')).html_safe
|
||||
.gl-alert-actions
|
||||
= link_to s_('AdminSettings|Go to General Settings'), general_admin_application_settings_path, class: 'btn gl-alert-action btn-info new-gl-button'
|
||||
- if show_admin_integrations_moved?
|
||||
.gl-alert.gl-alert-info.js-admin-integrations-moved.mt-3{ role: 'alert', data: { feature_id: UserCalloutsHelper::ADMIN_INTEGRATIONS_MOVED, dismiss_endpoint: user_callouts_path } }
|
||||
= sprite_icon('information-o', css_class: 'gl-icon gl-alert-icon gl-alert-icon-no-title')
|
||||
%button.js-close.gl-alert-dismiss{ type: 'button', 'aria-label' => _('Dismiss') }
|
||||
= sprite_icon('close', css_class: 'gl-icon')
|
||||
.gl-alert-body
|
||||
%h4.gl-alert-title= s_('AdminSettings|Some settings have moved')
|
||||
= html_escape_once(s_('AdminSettings|Elasticsearch, PlantUML, Slack application, Third party offers, Snowplow, Amazon EKS have moved to Settings > General.')).html_safe
|
||||
.gl-alert-actions
|
||||
= link_to s_('AdminSettings|Go to General Settings'), general_admin_application_settings_path, class: 'btn gl-alert-action btn-info new-gl-button'
|
||||
|
||||
%h4= s_('AdminSettings|Apply integration settings to all Projects')
|
||||
%p
|
||||
= s_('AdminSettings|Integrations configured here will automatically apply to all projects on this instance.')
|
||||
= link_to _('Learn more'), '#'
|
||||
= render 'shared/integrations/index', integrations: @integrations
|
||||
|
||||
- else
|
||||
= render_if_exists 'admin/application_settings/elasticsearch_form'
|
||||
= render 'admin/application_settings/plantuml'
|
||||
= render 'admin/application_settings/sourcegraph'
|
||||
= render_if_exists 'admin/application_settings/slack'
|
||||
= render 'admin/application_settings/third_party_offers'
|
||||
= render 'admin/application_settings/snowplow'
|
||||
= render 'admin/application_settings/eks'
|
||||
%h4= s_('AdminSettings|Apply integration settings to all Projects')
|
||||
%p
|
||||
= s_('AdminSettings|Integrations configured here will automatically apply to all projects on this instance.')
|
||||
= link_to _('Learn more'), '#'
|
||||
= render 'shared/integrations/index', integrations: @integrations
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Move old integrations to Settings > General and introduce instance-level integrations
|
||||
merge_request: 38488
|
||||
author:
|
||||
type: added
|
|
@ -178,7 +178,7 @@ Owners" section:
|
|||
|
||||
```plaintext
|
||||
[README Owners]
|
||||
README.md @user1 @user 2
|
||||
README.md @user1 @user2
|
||||
internal/README.md @user2
|
||||
```
|
||||
|
||||
|
|
|
@ -123,7 +123,7 @@ module API
|
|||
bad_request!
|
||||
end
|
||||
|
||||
track_event('register_package')
|
||||
track_event('push_package')
|
||||
|
||||
::Packages::Composer::CreatePackageService
|
||||
.new(authorized_user_project, current_user, declared_params)
|
||||
|
|
|
@ -142,23 +142,12 @@ RSpec.describe Admin::ApplicationSettingsController do
|
|||
end
|
||||
|
||||
describe 'verify panel actions' do
|
||||
before do
|
||||
stub_feature_flags(instance_level_integrations: false)
|
||||
end
|
||||
|
||||
Admin::ApplicationSettingsController::VALID_SETTING_PANELS.each do |valid_action|
|
||||
it_behaves_like 'renders correct panels' do
|
||||
let(:action) { valid_action }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'PATCH #integrations' do
|
||||
before do
|
||||
stub_feature_flags(instance_level_integrations: false)
|
||||
sign_in(admin)
|
||||
end
|
||||
|
||||
describe 'EKS integration' do
|
||||
let(:application_setting) { ApplicationSetting.current }
|
||||
|
@ -172,7 +161,7 @@ RSpec.describe Admin::ApplicationSettingsController do
|
|||
end
|
||||
|
||||
it 'updates EKS settings' do
|
||||
patch :integrations, params: { application_setting: settings_params }
|
||||
put :update, params: { application_setting: settings_params }
|
||||
|
||||
expect(application_setting.eks_integration_enabled).to be_truthy
|
||||
expect(application_setting.eks_account_id).to eq '123456789012'
|
||||
|
@ -186,7 +175,7 @@ RSpec.describe Admin::ApplicationSettingsController do
|
|||
it 'does not update the secret key' do
|
||||
application_setting.update!(eks_secret_access_key: 'dummy secret key')
|
||||
|
||||
patch :integrations, params: { application_setting: settings_params }
|
||||
put :update, params: { application_setting: settings_params }
|
||||
|
||||
expect(application_setting.reload.eks_secret_access_key).to eq 'dummy secret key'
|
||||
end
|
||||
|
|
|
@ -10,16 +10,6 @@ RSpec.describe Admin::IntegrationsController do
|
|||
end
|
||||
|
||||
describe '#edit' do
|
||||
context 'when instance_level_integrations not enabled' do
|
||||
it 'returns not_found' do
|
||||
stub_feature_flags(instance_level_integrations: false)
|
||||
|
||||
get :edit, params: { id: Service.available_services_names.sample }
|
||||
|
||||
expect(response).to have_gitlab_http_status(:not_found)
|
||||
end
|
||||
end
|
||||
|
||||
Service.available_services_names.each do |integration_name|
|
||||
context "#{integration_name}" do
|
||||
it 'successfully displays the template' do
|
||||
|
|
|
@ -209,8 +209,7 @@ RSpec.describe 'Admin updates settings', :clean_gitlab_redis_shared_state, :do_n
|
|||
|
||||
context 'Integrations page' do
|
||||
before do
|
||||
stub_feature_flags(instance_level_integrations: false)
|
||||
visit integrations_admin_application_settings_path
|
||||
visit general_admin_application_settings_path
|
||||
end
|
||||
|
||||
it 'Enable hiding third party offers' do
|
||||
|
|
|
@ -205,11 +205,10 @@ RSpec.describe 'Gcp Cluster', :js, :do_not_mock_admin_mode do
|
|||
let(:admin) { create(:admin) }
|
||||
|
||||
before do
|
||||
stub_feature_flags(instance_level_integrations: false)
|
||||
stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false')
|
||||
sign_in(admin)
|
||||
gitlab_enable_admin_mode_sign_in(admin)
|
||||
visit integrations_admin_application_settings_path
|
||||
visit general_admin_application_settings_path
|
||||
end
|
||||
|
||||
it 'user does not see the offer' do
|
||||
|
|
|
@ -72,7 +72,7 @@ RSpec.shared_examples 'Composer package creation' do |user_type, status, add_mem
|
|||
|
||||
expect(response).to have_gitlab_http_status(status)
|
||||
end
|
||||
it_behaves_like 'a gitlab tracking event', described_class.name, 'register_package'
|
||||
it_behaves_like 'a gitlab tracking event', described_class.name, 'push_package'
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue