From c0f42c6d662b776777afbf79ba72d8e833b8de48 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 9 Jun 2021 15:10:05 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- GITALY_SERVER_VERSION | 2 +- Gemfile | 2 +- Gemfile.lock | 4 +- .../logs/components/environment_logs.vue | 25 +- app/assets/javascripts/logs/constants.js | 1 - app/assets/javascripts/logs/stores/actions.js | 32 +-- app/assets/javascripts/logs/stores/getters.js | 13 +- .../javascripts/logs/stores/mutation_types.js | 3 - .../javascripts/logs/stores/mutations.js | 25 -- app/assets/javascripts/logs/stores/state.js | 10 - .../nav/components/responsive_app.vue | 79 +++++- .../nav/components/responsive_header.vue | 37 +++ .../nav/components/responsive_home.vue | 62 +++++ .../nav/components/top_nav_container_view.vue | 11 +- .../nav/components/top_nav_menu_item.vue | 14 +- .../nav/components/top_nav_menu_sections.vue | 1 + .../nav/components/top_nav_new_dropdown.vue | 55 ++++ .../nav/utils/reset_menu_items_active.js | 14 + .../source_branch_removal_status.vue | 11 +- .../stylesheets/startup/startup-dark.scss | 9 + .../stylesheets/startup/startup-general.scss | 9 + .../ci/pipelines_for_merge_request_finder.rb | 2 +- app/graphql/resolvers/ci/runners_resolver.rb | 4 + app/helpers/nav/top_nav_helper.rb | 45 +++- app/models/ci/runner.rb | 9 +- app/models/packages/package.rb | 16 +- app/views/layouts/header/_default.html.haml | 13 +- .../layouts/nav/_top_nav_responsive.html.haml | 2 +- app/views/notify/_failed_builds.html.haml | 4 +- .../notify/pipeline_failed_email.text.erb | 2 +- config/application.rb | 26 +- .../development/arel_package_scopes.yml | 8 - .../development/use_distinct_in_shas_cte.yml | 2 +- ...ystem_jira_service_close_issue_monthly.yml | 14 +- ...m_jira_service_cross_reference_monthly.yml | 14 +- ...ystem_jira_service_list_issues_monthly.yml | 16 -- ...stem_jira_service_create_issue_monthly.yml | 16 -- ..._ecosystem_total_unique_counts_monthly.yml | 14 +- ...system_jira_service_close_issue_weekly.yml | 18 ++ ...em_jira_service_cross_reference_weekly.yml | 18 ++ ...5_ecosystem_total_unique_counts_weekly.yml | 18 ++ ...20210216182547_projects_datadog_active.yml | 14 +- .../20210216182549_groups_datadog_active.yml | 14 +- ...0210216182551_templates_datadog_active.yml | 14 +- ...0210216182553_instances_datadog_active.yml | 14 +- ...555_projects_inheriting_datadog_active.yml | 14 +- ...82557_groups_inheriting_datadog_active.yml | 14 +- .../20210216182614_projects_ewm_active.yml | 14 +- .../20210216182616_groups_ewm_active.yml | 14 +- .../20210216182618_templates_ewm_active.yml | 14 +- .../20210216182620_instances_ewm_active.yml | 14 +- ...6182622_projects_inheriting_ewm_active.yml | 14 +- ...216182623_groups_inheriting_ewm_active.yml | 14 +- ...20210216182722_projects_mock_ci_active.yml | 17 +- .../20210216182724_groups_mock_ci_active.yml | 17 +- ...0210216182726_templates_mock_ci_active.yml | 17 +- ...0210216182728_instances_mock_ci_active.yml | 17 +- ...730_projects_inheriting_mock_ci_active.yml | 17 +- ...82732_groups_inheriting_mock_ci_active.yml | 17 +- ...182734_projects_mock_monitoring_active.yml | 17 +- ...16182736_groups_mock_monitoring_active.yml | 17 +- ...82738_templates_mock_monitoring_active.yml | 17 +- ...82739_instances_mock_monitoring_active.yml | 17 +- ...ects_inheriting_mock_monitoring_active.yml | 17 +- ...oups_inheriting_mock_monitoring_active.yml | 17 +- config/routes.rb | 8 + ...602122233_add_runners_description_index.rb | 17 ++ db/schema_migrations/20210602122233 | 1 + db/structure.sql | 2 + .../geo/disaster_recovery/index.md | 19 +- doc/api/graphql/getting_started.md | 123 +++++---- doc/api/graphql/reference/index.md | 31 +++ doc/api/groups.md | 22 ++ doc/api/runners.md | 2 + doc/development/usage_ping/dictionary.md | 250 +++++++++--------- .../admin_area/analytics/dev_ops_report.md | 21 +- .../img/admin_devops_adoption_v14_0.png | Bin 0 -> 63094 bytes .../img/group_devops_adoption_v13_11.png | Bin 58389 -> 0 bytes .../img/group_devops_adoption_v14_0.png | Bin 0 -> 64879 bytes doc/user/group/devops_adoption/index.md | 21 +- lib/api/api.rb | 1 + lib/api/group_avatar.rb | 21 ++ locale/gitlab.pot | 12 +- .../user_sees_merge_widget_spec.rb | 2 +- spec/features/nav/top_nav_responsive_spec.rb | 23 +- .../projects/environments_pod_logs_spec.rb | 2 +- .../logs/components/environment_logs_spec.js | 3 +- spec/frontend/logs/mock_data.js | 27 -- spec/frontend/logs/stores/actions_spec.js | 27 -- spec/frontend/logs/stores/getters_spec.js | 48 +--- spec/frontend/logs/stores/mutations_spec.js | 36 --- .../nav/components/responsive_app_spec.js | 92 +++++++ .../nav/components/responsive_header_spec.js | 67 +++++ .../nav/components/responsive_home_spec.js | 137 ++++++++++ .../components/top_nav_container_view_spec.js | 6 + .../nav/components/top_nav_menu_item_spec.js | 40 ++- .../components/top_nav_menu_sections_spec.js | 8 +- .../components/top_nav_new_dropdown_spec.js | 122 +++++++++ spec/frontend/nav/mock_data.js | 4 + .../vue_mr_widget/mr_widget_options_spec.js | 4 +- .../resolvers/ci/runners_resolver_spec.rb | 46 +++- spec/helpers/nav/top_nav_helper_spec.rb | 60 ++++- spec/models/ci/runner_spec.rb | 8 +- spec/models/packages/package_spec.rb | 15 +- spec/requests/api/group_avatar_spec.rb | 64 +++++ spec/requests/oauth/tokens_controller_spec.rb | 71 ++++- spec/requests/openid_connect_spec.rb | 110 ++++++++ .../cluster_management.tar.gz | Bin 4051 -> 10293 bytes 108 files changed, 1857 insertions(+), 768 deletions(-) create mode 100644 app/assets/javascripts/nav/components/responsive_header.vue create mode 100644 app/assets/javascripts/nav/components/responsive_home.vue create mode 100644 app/assets/javascripts/nav/components/top_nav_new_dropdown.vue create mode 100644 app/assets/javascripts/nav/utils/reset_menu_items_active.js delete mode 100644 config/feature_flags/development/arel_package_scopes.yml delete mode 100644 config/metrics/counts_28d/20210216184949_i_ecosystem_jira_service_list_issues_monthly.yml delete mode 100644 config/metrics/counts_28d/20210216184953_i_ecosystem_jira_service_create_issue_monthly.yml create mode 100644 config/metrics/counts_7d/20210216184939_i_ecosystem_jira_service_close_issue_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184943_i_ecosystem_jira_service_cross_reference_weekly.yml create mode 100644 config/metrics/counts_7d/20210216184955_ecosystem_total_unique_counts_weekly.yml create mode 100644 db/migrate/20210602122233_add_runners_description_index.rb create mode 100644 db/schema_migrations/20210602122233 create mode 100644 doc/user/admin_area/analytics/img/admin_devops_adoption_v14_0.png delete mode 100644 doc/user/group/devops_adoption/img/group_devops_adoption_v13_11.png create mode 100644 doc/user/group/devops_adoption/img/group_devops_adoption_v14_0.png create mode 100644 lib/api/group_avatar.rb create mode 100644 spec/frontend/nav/components/responsive_header_spec.js create mode 100644 spec/frontend/nav/components/responsive_home_spec.js create mode 100644 spec/frontend/nav/components/top_nav_new_dropdown_spec.js create mode 100644 spec/requests/api/group_avatar_spec.rb diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index bfd59c5ffca..5cf4124a5bb 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -22f7db01953debe8e7c1c46ff2b1ffb5a143c566 +dc956109aa3e352cadc55ebba267b43fdd4fdc27 diff --git a/Gemfile b/Gemfile index 12e82216a40..d99cd5970e4 100644 --- a/Gemfile +++ b/Gemfile @@ -129,7 +129,7 @@ gem 'fog-local', '~> 0.6' gem 'fog-openstack', '~> 1.0' gem 'fog-rackspace', '~> 0.1.1' gem 'fog-aliyun', '~> 0.3' -gem 'gitlab-fog-azure-rm', '~> 1.0.1', require: false +gem 'gitlab-fog-azure-rm', '~> 1.1.1', require: false # for Google storage gem 'google-api-client', '~> 0.33' diff --git a/Gemfile.lock b/Gemfile.lock index 06dfaccac3d..a1fd31680a1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -457,7 +457,7 @@ GEM activesupport (>= 3.0) request_store (>= 1.0) scientist (~> 1.6, >= 1.6.0) - gitlab-fog-azure-rm (1.0.1) + gitlab-fog-azure-rm (1.1.1) azure-storage-blob (~> 2.0) azure-storage-common (~> 2.0) fog-core (= 2.1.0) @@ -1474,7 +1474,7 @@ DEPENDENCIES gitlab-chronic (~> 0.10.5) gitlab-dangerfiles (~> 2.0.0) gitlab-experiment (~> 0.5.4) - gitlab-fog-azure-rm (~> 1.0.1) + gitlab-fog-azure-rm (~> 1.1.1) gitlab-fog-google (~> 1.13) gitlab-labkit (~> 0.18.0) gitlab-license (~> 1.5) diff --git a/app/assets/javascripts/logs/components/environment_logs.vue b/app/assets/javascripts/logs/components/environment_logs.vue index 5092c6905c4..39041aa1447 100644 --- a/app/assets/javascripts/logs/components/environment_logs.vue +++ b/app/assets/javascripts/logs/components/environment_logs.vue @@ -5,7 +5,6 @@ import { GlDropdown, GlDropdownSectionHeader, GlDropdownItem, - GlDropdownDivider, GlInfiniteScroll, } from '@gitlab/ui'; import { throttle } from 'lodash'; @@ -25,7 +24,6 @@ export default { GlDropdown, GlDropdownSectionHeader, GlDropdownItem, - GlDropdownDivider, GlInfiniteScroll, LogSimpleFilters, LogAdvancedFilters, @@ -66,7 +64,7 @@ export default { }; }, computed: { - ...mapState('environmentLogs', ['environments', 'timeRange', 'logs', 'pods', 'managedApps']), + ...mapState('environmentLogs', ['environments', 'timeRange', 'logs', 'pods']), ...mapGetters('environmentLogs', ['trace', 'showAdvancedFilters']), showLoader() { @@ -88,15 +86,12 @@ export default { }); this.fetchEnvironments(this.environmentsPath); - this.fetchManagedApps(this.clustersPath); }, methods: { ...mapActions('environmentLogs', [ 'setInitData', 'showEnvironment', - 'showManagedApp', 'fetchEnvironments', - 'fetchManagedApps', 'refreshPodLogs', 'fetchMoreLogsPrepend', 'dismissRequestEnvironmentsError', @@ -107,9 +102,6 @@ export default { isCurrentEnvironment(envName) { return envName === this.environments.current; }, - isCurrentManagedApp(appName) { - return appName === this.managedApps.current; - }, topReached() { if (!this.logs.isLoading) { this.fetchMoreLogsPrepend(); @@ -173,7 +165,7 @@ export default {
@@ -189,19 +181,6 @@ export default { > {{ env.name }} - - - {{ s__('Environments|Managed apps') }} - - - {{ app.name }} -
diff --git a/app/assets/javascripts/logs/constants.js b/app/assets/javascripts/logs/constants.js index 0cdef53df34..abc4d6679a0 100644 --- a/app/assets/javascripts/logs/constants.js +++ b/app/assets/javascripts/logs/constants.js @@ -13,5 +13,4 @@ export const tracking = { export const logExplorerOptions = { environments: 'environments', - managedApps: 'managedApps', }; diff --git a/app/assets/javascripts/logs/stores/actions.js b/app/assets/javascripts/logs/stores/actions.js index c3dc9f4bc12..56b832de9b8 100644 --- a/app/assets/javascripts/logs/stores/actions.js +++ b/app/assets/javascripts/logs/stores/actions.js @@ -25,15 +25,9 @@ const requestUntilData = (url, params) => const requestLogsUntilData = ({ commit, state }) => { const params = {}; - const type = state.environments.current - ? logExplorerOptions.environments - : logExplorerOptions.managedApps; + const type = logExplorerOptions.environments; const selectedObj = state[type].options.find(({ name }) => name === state[type].current); - - const path = - type === logExplorerOptions.environments - ? selectedObj.logs_api_path - : selectedObj.gitlab_managed_apps_logs_path; + const path = selectedObj.logs_api_path; if (state.pods.current) { params.pod_name = state.pods.current; @@ -106,11 +100,6 @@ export const showEnvironment = ({ dispatch, commit }, environmentName) => { dispatch('fetchLogs', tracking.ENVIRONMENT_SELECTED); }; -export const showManagedApp = ({ dispatch, commit }, managedApp) => { - commit(types.SET_MANAGED_APP, managedApp); - dispatch('fetchLogs', tracking.MANAGED_APP_SELECTED); -}; - export const refreshPodLogs = ({ dispatch, commit }) => { commit(types.REFRESH_POD_LOGS); dispatch('fetchLogs', tracking.REFRESH_POD_LOGS); @@ -135,23 +124,6 @@ export const fetchEnvironments = ({ commit, dispatch }, environmentsPath) => { }); }; -/** - * Fetch managed apps data - * @param {Object} store - * @param {String} clustersPath - */ - -export const fetchManagedApps = ({ commit }, clustersPath) => { - return axios - .get(clustersPath) - .then(({ data }) => { - commit(types.RECEIVE_MANAGED_APPS_DATA_SUCCESS, data.clusters); - }) - .catch(() => { - commit(types.RECEIVE_MANAGED_APPS_DATA_ERROR); - }); -}; - export const fetchLogs = ({ commit, state }, trackingLabel) => { commit(types.REQUEST_LOGS_DATA); diff --git a/app/assets/javascripts/logs/stores/getters.js b/app/assets/javascripts/logs/stores/getters.js index 836e6e82385..bf71cfd8eb2 100644 --- a/app/assets/javascripts/logs/stores/getters.js +++ b/app/assets/javascripts/logs/stores/getters.js @@ -6,16 +6,9 @@ const mapTrace = ({ timestamp = null, pod = '', message = '' }) => export const trace = (state) => state.logs.lines.map(mapTrace).join('\n'); export const showAdvancedFilters = (state) => { - if (state.environments.current) { - const environment = state.environments.options.find( - ({ name }) => name === state.environments.current, - ); - - return Boolean(environment?.enable_advanced_logs_querying); - } - const managedApp = state.managedApps.options.find( - ({ name }) => name === state.managedApps.current, + const environment = state.environments.options.find( + ({ name }) => name === state.environments.current, ); - return Boolean(managedApp?.enable_advanced_logs_querying); + return Boolean(environment?.enable_advanced_logs_querying); }; diff --git a/app/assets/javascripts/logs/stores/mutation_types.js b/app/assets/javascripts/logs/stores/mutation_types.js index eaa4b13f8bd..c1ed65ff48b 100644 --- a/app/assets/javascripts/logs/stores/mutation_types.js +++ b/app/assets/javascripts/logs/stores/mutation_types.js @@ -13,9 +13,6 @@ export const RECEIVE_ENVIRONMENTS_DATA_SUCCESS = 'RECEIVE_ENVIRONMENTS_DATA_SUCC export const RECEIVE_ENVIRONMENTS_DATA_ERROR = 'RECEIVE_ENVIRONMENTS_DATA_ERROR'; export const HIDE_REQUEST_ENVIRONMENTS_ERROR = 'HIDE_REQUEST_ENVIRONMENTS_ERROR'; -export const RECEIVE_MANAGED_APPS_DATA_SUCCESS = 'RECEIVE_MANAGED_APPS_DATA_SUCCESS'; -export const RECEIVE_MANAGED_APPS_DATA_ERROR = 'RECEIVE_MANAGED_APPS_DATA_ERROR'; - export const REQUEST_LOGS_DATA = 'REQUEST_LOGS_DATA'; export const RECEIVE_LOGS_DATA_SUCCESS = 'RECEIVE_LOGS_DATA_SUCCESS'; export const RECEIVE_LOGS_DATA_ERROR = 'RECEIVE_LOGS_DATA_ERROR'; diff --git a/app/assets/javascripts/logs/stores/mutations.js b/app/assets/javascripts/logs/stores/mutations.js index 21031838adf..6736d7204b4 100644 --- a/app/assets/javascripts/logs/stores/mutations.js +++ b/app/assets/javascripts/logs/stores/mutations.js @@ -32,9 +32,6 @@ export default { // Clear current pod options state.pods.current = null; state.pods.options = []; - - // Clear current managedApps options - state.managedApps.current = null; }, [types.REQUEST_ENVIRONMENTS_DATA](state) { state.environments.options = []; @@ -110,26 +107,4 @@ export default { [types.RECEIVE_PODS_DATA_ERROR](state) { state.pods.options = []; }, - // Managed apps data - [types.RECEIVE_MANAGED_APPS_DATA_SUCCESS](state, apps) { - state.managedApps.options = apps.filter( - ({ gitlab_managed_apps_logs_path }) => gitlab_managed_apps_logs_path, // eslint-disable-line babel/camelcase - ); - state.managedApps.isLoading = false; - }, - [types.RECEIVE_MANAGED_APPS_DATA_ERROR](state) { - state.managedApps.options = []; - state.managedApps.isLoading = false; - state.managedApps.fetchError = true; - }, - [types.SET_MANAGED_APP](state, managedApp) { - state.managedApps.current = managedApp; - - // Clear current pod options - state.pods.current = null; - state.pods.options = []; - - // Clear current environment options - state.environments.current = null; - }, }; diff --git a/app/assets/javascripts/logs/stores/state.js b/app/assets/javascripts/logs/stores/state.js index e2028621ac8..83080589362 100644 --- a/app/assets/javascripts/logs/stores/state.js +++ b/app/assets/javascripts/logs/stores/state.js @@ -30,16 +30,6 @@ export default () => ({ fetchError: false, }, - /** - * Managed apps list information - */ - managedApps: { - options: [], - isLoading: false, - current: null, - fetchError: false, - }, - /** * Logs including trace */ diff --git a/app/assets/javascripts/nav/components/responsive_app.vue b/app/assets/javascripts/nav/components/responsive_app.vue index 01b0fa370b5..cef1a14df19 100644 --- a/app/assets/javascripts/nav/components/responsive_app.vue +++ b/app/assets/javascripts/nav/components/responsive_app.vue @@ -1,30 +1,101 @@ diff --git a/app/assets/javascripts/nav/components/responsive_header.vue b/app/assets/javascripts/nav/components/responsive_header.vue new file mode 100644 index 00000000000..8a1d21993b7 --- /dev/null +++ b/app/assets/javascripts/nav/components/responsive_header.vue @@ -0,0 +1,37 @@ + + + diff --git a/app/assets/javascripts/nav/components/responsive_home.vue b/app/assets/javascripts/nav/components/responsive_home.vue new file mode 100644 index 00000000000..c8f2f0bfb10 --- /dev/null +++ b/app/assets/javascripts/nav/components/responsive_home.vue @@ -0,0 +1,62 @@ + + + diff --git a/app/assets/javascripts/nav/components/top_nav_container_view.vue b/app/assets/javascripts/nav/components/top_nav_container_view.vue index 4043ef1ae5b..6f98f85ff90 100644 --- a/app/assets/javascripts/nav/components/top_nav_container_view.vue +++ b/app/assets/javascripts/nav/components/top_nav_container_view.vue @@ -20,6 +20,11 @@ export default { type: String, required: true, }, + containerClass: { + type: String, + required: false, + default: '', + }, linksPrimary: { type: Array, required: false, @@ -50,7 +55,11 @@ export default { diff --git a/app/assets/javascripts/nav/components/top_nav_menu_sections.vue b/app/assets/javascripts/nav/components/top_nav_menu_sections.vue index 407c79b1f42..442af512350 100644 --- a/app/assets/javascripts/nav/components/top_nav_menu_sections.vue +++ b/app/assets/javascripts/nav/components/top_nav_menu_sections.vue @@ -54,6 +54,7 @@ export default { :key="menuItem.id" :menu-item="menuItem" data-testid="menu-item" + class="gl-w-full" :class="{ 'gl-mt-1': menuItemIndex > 0 }" @click="onClick(menuItem)" /> diff --git a/app/assets/javascripts/nav/components/top_nav_new_dropdown.vue b/app/assets/javascripts/nav/components/top_nav_new_dropdown.vue new file mode 100644 index 00000000000..154bed81854 --- /dev/null +++ b/app/assets/javascripts/nav/components/top_nav_new_dropdown.vue @@ -0,0 +1,55 @@ + + + diff --git a/app/assets/javascripts/nav/utils/reset_menu_items_active.js b/app/assets/javascripts/nav/utils/reset_menu_items_active.js new file mode 100644 index 00000000000..9b5d8e97c9c --- /dev/null +++ b/app/assets/javascripts/nav/utils/reset_menu_items_active.js @@ -0,0 +1,14 @@ +const resetActiveInArray = (arr) => arr?.map((menuItem) => ({ ...menuItem, active: false })); + +/** + * This method sets `active: false` for the menu items within the given nav data. + * + * @returns navData with the menu items updated with `active: false` + */ +export const resetMenuItemsActive = ({ primary, secondary, ...navData }) => { + return { + ...navData, + primary: resetActiveInArray(primary), + secondary: resetActiveInArray(secondary), + }; +}; diff --git a/app/assets/javascripts/vue_merge_request_widget/components/source_branch_removal_status.vue b/app/assets/javascripts/vue_merge_request_widget/components/source_branch_removal_status.vue index d50d97e3570..9268e426954 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/source_branch_removal_status.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/source_branch_removal_status.vue @@ -1,15 +1,14 @@