From 866ca4e49ff74ffadf8e6f6ff663a168489c2aba Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 14 Feb 2020 21:09:08 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/ci/global.gitlab-ci.yml | 8 ++ .../javascripts/monitoring/stores/actions.js | 4 +- .../monitoring/stores/mutations.js | 23 +++-- .../pages/projects/releases/edit/index.js | 2 +- .../pages/projects/releases/index/index.js | 2 +- .../app.vue => components/app_edit.vue} | 12 +-- .../app.vue => components/app_index.vue} | 4 +- .../{list => }/components/evidence_block.vue | 0 .../{list => }/components/release_block.vue | 0 .../components/release_block_assets.vue | 0 .../components/release_block_author.vue | 0 .../components/release_block_footer.vue | 0 .../components/release_block_header.vue | 0 .../components/release_block_metadata.vue | 0 .../release_block_milestone_info.vue | 0 .../components/release_block_milestones.vue | 0 .../releases/{list => }/constants.js | 0 .../javascripts/releases/detail/index.js | 19 ---- .../releases/detail/store/index.js | 14 --- app/assets/javascripts/releases/list/index.js | 24 ----- .../javascripts/releases/list/store/index.js | 14 --- app/assets/javascripts/releases/mount_edit.js | 17 ++++ .../javascripts/releases/mount_index.js | 21 +++++ .../javascripts/releases/stores/index.js | 6 ++ .../modules/detail}/actions.js | 0 .../releases/stores/modules/detail/index.js | 10 +++ .../modules/detail}/mutation_types.js | 0 .../modules/detail}/mutations.js | 0 .../store => stores/modules/detail}/state.js | 0 .../store => stores/modules/list}/actions.js | 0 .../releases/stores/modules/list/index.js | 10 +++ .../modules/list}/mutation_types.js | 0 .../modules/list}/mutations.js | 0 .../store => stores/modules/list}/state.js | 0 .../admin/application_settings_controller.rb | 10 +-- app/controllers/admin/projects_controller.rb | 2 +- app/controllers/admin/services_controller.rb | 2 +- app/controllers/projects/issues_controller.rb | 2 +- .../projects/pipeline_schedules_controller.rb | 2 +- .../registry/repositories_controller.rb | 2 +- .../projects/settings/ci_cd_controller.rb | 2 + .../settings/repository_controller.rb | 2 +- .../repositories/git_http_controller.rb | 2 +- app/helpers/analytics_navbar_helper.rb | 6 +- app/services/ci/process_build_service.rb | 8 +- .../nav/sidebar/_analytics_links.html.haml | 4 +- .../layouts/nav/sidebar/_group.html.haml | 2 +- .../layouts/nav/sidebar/_project.html.haml | 4 +- .../31526-skip-if-needed-job-skipped.yml | 5 ++ ...5487-backfill-lfs-objects-projects-sql.yml | 5 ++ ...v-object_builder_convert_empty_strings.yml | 6 ++ .../jcunha-update-managed-apps-template.yml | 5 ++ .../toggle-analytics-navbar-feature-flags.yml | 5 ++ ...0200210062432_schedule_link_lfs_objects.rb | 38 ++++++++ .../group/contribution_analytics/index.md | 2 +- .../insights/img/insights_sidebar_link.png | Bin 12327 -> 0 bytes .../img/insights_sidebar_link_v12_8.png | Bin 0 -> 7773 bytes doc/user/group/insights/index.md | 4 +- .../img/issues_created_per_month.png | Bin 28508 -> 0 bytes .../img/issues_created_per_month_v12_8.png | Bin 0 -> 66854 bytes doc/user/group/issues_analytics/index.md | 4 +- .../insights/img/insights_sidebar_link.png | Bin 13776 -> 0 bytes .../img/insights_sidebar_link_v12_8.png | Bin 0 -> 11194 bytes doc/user/project/insights/index.md | 4 +- .../prometheus_dashboard_area_panel_type.png | Bin 19349 -> 0 bytes ...etheus_dashboard_area_panel_type_v12_8.png | Bin 0 -> 53370 bytes doc/user/project/integrations/prometheus.md | 6 +- doc/user/shortcuts.md | 2 +- lib/api/group_export.rb | 2 +- lib/api/group_import.rb | 2 +- lib/api/pipeline_schedules.rb | 2 +- lib/api/project_container_repositories.rb | 4 +- lib/api/releases.rb | 4 +- .../background_migration/link_lfs_objects.rb | 48 ++++++++++ ...Managed-Cluster-Applications.gitlab-ci.yml | 4 +- .../import_export/group_object_builder.rb | 9 ++ qa/qa.rb | 4 + qa/qa/page/group/menu.rb | 13 ++- qa/qa/page/group/sub_menus/common.rb | 21 ++--- qa/qa/page/project/sub_menus/common.rb | 18 ++-- qa/qa/page/sub_menus/common.rb | 50 +++++++++++ rubocop/rubocop.rb | 1 + .../security/group/internal_access_spec.rb | 8 +- .../security/group/private_access_spec.rb | 8 +- .../security/group/public_access_spec.rb | 8 +- .../security/project/internal_access_spec.rb | 18 ++-- .../security/project/private_access_spec.rb | 16 ++-- .../security/project/public_access_spec.rb | 18 ++-- .../monitoring/store/mutations_spec.js | 25 +++++- .../app_edit_spec.js} | 18 ++-- .../components/evidence_block_spec.js | 4 +- .../components/release_block_footer_spec.js | 4 +- .../components/release_block_header_spec.js | 4 +- .../release_block_milestone_info_spec.js | 6 +- .../components/release_block_spec.js | 8 +- .../modules/detail}/actions_spec.js | 8 +- .../modules/detail}/mutations_spec.js | 8 +- .../app_index_spec.js} | 11 +-- .../modules/list}/actions_spec.js | 8 +- .../store => stores/modules/list}/helpers.js | 2 +- .../modules/list}/mutations_spec.js | 8 +- .../link_lfs_objects_spec.rb | 66 ++++++++++++++ .../group_object_builder_spec.rb | 22 +++++ .../schedule_link_lfs_objects_spec.rb | 82 ++++++++++++++++++ spec/routing/project_routing_spec.rb | 16 ++-- .../shared_processing_service.rb | 25 ++++++ .../services/ci/process_build_service_spec.rb | 31 +++++++ 107 files changed, 688 insertions(+), 252 deletions(-) rename app/assets/javascripts/releases/{detail/components/app.vue => components/app_edit.vue} (94%) rename app/assets/javascripts/releases/{list/components/app.vue => components/app_index.vue} (95%) rename app/assets/javascripts/releases/{list => }/components/evidence_block.vue (100%) rename app/assets/javascripts/releases/{list => }/components/release_block.vue (100%) rename app/assets/javascripts/releases/{list => }/components/release_block_assets.vue (100%) rename app/assets/javascripts/releases/{list => }/components/release_block_author.vue (100%) rename app/assets/javascripts/releases/{list => }/components/release_block_footer.vue (100%) rename app/assets/javascripts/releases/{list => }/components/release_block_header.vue (100%) rename app/assets/javascripts/releases/{list => }/components/release_block_metadata.vue (100%) rename app/assets/javascripts/releases/{list => }/components/release_block_milestone_info.vue (100%) rename app/assets/javascripts/releases/{list => }/components/release_block_milestones.vue (100%) rename app/assets/javascripts/releases/{list => }/constants.js (100%) delete mode 100644 app/assets/javascripts/releases/detail/index.js delete mode 100644 app/assets/javascripts/releases/detail/store/index.js delete mode 100644 app/assets/javascripts/releases/list/index.js delete mode 100644 app/assets/javascripts/releases/list/store/index.js create mode 100644 app/assets/javascripts/releases/mount_edit.js create mode 100644 app/assets/javascripts/releases/mount_index.js create mode 100644 app/assets/javascripts/releases/stores/index.js rename app/assets/javascripts/releases/{detail/store => stores/modules/detail}/actions.js (100%) create mode 100644 app/assets/javascripts/releases/stores/modules/detail/index.js rename app/assets/javascripts/releases/{detail/store => stores/modules/detail}/mutation_types.js (100%) rename app/assets/javascripts/releases/{detail/store => stores/modules/detail}/mutations.js (100%) rename app/assets/javascripts/releases/{detail/store => stores/modules/detail}/state.js (100%) rename app/assets/javascripts/releases/{list/store => stores/modules/list}/actions.js (100%) create mode 100644 app/assets/javascripts/releases/stores/modules/list/index.js rename app/assets/javascripts/releases/{list/store => stores/modules/list}/mutation_types.js (100%) rename app/assets/javascripts/releases/{list/store => stores/modules/list}/mutations.js (100%) rename app/assets/javascripts/releases/{list/store => stores/modules/list}/state.js (100%) create mode 100644 changelogs/unreleased/31526-skip-if-needed-job-skipped.yml create mode 100644 changelogs/unreleased/55487-backfill-lfs-objects-projects-sql.yml create mode 100644 changelogs/unreleased/georgekoltsov-object_builder_convert_empty_strings.yml create mode 100644 changelogs/unreleased/jcunha-update-managed-apps-template.yml create mode 100644 changelogs/unreleased/toggle-analytics-navbar-feature-flags.yml create mode 100644 db/post_migrate/20200210062432_schedule_link_lfs_objects.rb delete mode 100644 doc/user/group/insights/img/insights_sidebar_link.png create mode 100644 doc/user/group/insights/img/insights_sidebar_link_v12_8.png delete mode 100644 doc/user/group/issues_analytics/img/issues_created_per_month.png create mode 100644 doc/user/group/issues_analytics/img/issues_created_per_month_v12_8.png delete mode 100644 doc/user/project/insights/img/insights_sidebar_link.png create mode 100644 doc/user/project/insights/img/insights_sidebar_link_v12_8.png delete mode 100644 doc/user/project/integrations/img/prometheus_dashboard_area_panel_type.png create mode 100644 doc/user/project/integrations/img/prometheus_dashboard_area_panel_type_v12_8.png create mode 100644 lib/gitlab/background_migration/link_lfs_objects.rb create mode 100644 qa/qa/page/sub_menus/common.rb rename spec/frontend/releases/{detail/components/app_spec.js => components/app_edit_spec.js} (89%) rename spec/frontend/releases/{list => }/components/evidence_block_spec.js (94%) rename spec/frontend/releases/{list => }/components/release_block_footer_spec.js (97%) rename spec/frontend/releases/{list => }/components/release_block_header_spec.js (90%) rename spec/frontend/releases/{list => }/components/release_block_milestone_info_spec.js (95%) rename spec/frontend/releases/{list => }/components/release_block_spec.js (97%) rename spec/frontend/releases/{detail/store => stores/modules/detail}/actions_spec.js (96%) rename spec/frontend/releases/{detail/store => stores/modules/detail}/mutations_spec.js (93%) rename spec/javascripts/releases/{list/components/app_spec.js => components/app_index_spec.js} (91%) rename spec/javascripts/releases/{list/store => stores/modules/list}/actions_spec.js (94%) rename spec/javascripts/releases/{list/store => stores/modules/list}/helpers.js (68%) rename spec/javascripts/releases/{list/store => stores/modules/list}/mutations_spec.js (86%) create mode 100644 spec/lib/gitlab/background_migration/link_lfs_objects_spec.rb create mode 100644 spec/migrations/schedule_link_lfs_objects_spec.rb diff --git a/.gitlab/ci/global.gitlab-ci.yml b/.gitlab/ci/global.gitlab-ci.yml index c18453b778c..7171f94decc 100644 --- a/.gitlab/ci/global.gitlab-ci.yml +++ b/.gitlab/ci/global.gitlab-ci.yml @@ -203,6 +203,8 @@ - name: postgres:9.6 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] - name: redis:alpine + variables: + POSTGRES_HOST_AUTH_METHOD: trust .use-pg10: image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.21-postgresql-10-graphicsmagick-1.3.34" @@ -210,6 +212,8 @@ - name: postgres:10.9 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] - name: redis:alpine + variables: + POSTGRES_HOST_AUTH_METHOD: trust .use-pg9-ee: services: @@ -217,6 +221,8 @@ command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] - name: redis:alpine - name: elasticsearch:6.4.2 + variables: + POSTGRES_HOST_AUTH_METHOD: trust .use-pg10-ee: image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.21-postgresql-10-graphicsmagick-1.3.34" @@ -225,6 +231,8 @@ command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] - name: redis:alpine - name: elasticsearch:6.4.2 + variables: + POSTGRES_HOST_AUTH_METHOD: trust .only-ee: only: diff --git a/app/assets/javascripts/monitoring/stores/actions.js b/app/assets/javascripts/monitoring/stores/actions.js index 3a052200ab9..8bb5047ef04 100644 --- a/app/assets/javascripts/monitoring/stores/actions.js +++ b/app/assets/javascripts/monitoring/stores/actions.js @@ -6,7 +6,7 @@ import { gqClient, parseEnvironmentsResponse, removeLeadingSlash } from './utils import trackDashboardLoad from '../monitoring_tracking_helper'; import getEnvironments from '../queries/getEnvironments.query.graphql'; import statusCodes from '../../lib/utils/http_status'; -import { backOff } from '../../lib/utils/common_utils'; +import { backOff, convertObjectPropsToCamelCase } from '../../lib/utils/common_utils'; import { s__, sprintf } from '../../locale'; import { PROMETHEUS_TIMEOUT } from '../constants'; @@ -52,6 +52,8 @@ export const requestMetricsDashboard = ({ commit }) => { export const receiveMetricsDashboardSuccess = ({ commit, dispatch }, { response, params }) => { commit(types.SET_ALL_DASHBOARDS, response.all_dashboards); commit(types.RECEIVE_METRICS_DATA_SUCCESS, response.dashboard); + commit(types.SET_ENDPOINTS, convertObjectPropsToCamelCase(response.metrics_data)); + return dispatch('fetchPrometheusMetrics', params); }; export const receiveMetricsDashboardFailure = ({ commit }, error) => { diff --git a/app/assets/javascripts/monitoring/stores/mutations.js b/app/assets/javascripts/monitoring/stores/mutations.js index 5f559290ff7..8bd53a24b61 100644 --- a/app/assets/javascripts/monitoring/stores/mutations.js +++ b/app/assets/javascripts/monitoring/stores/mutations.js @@ -1,4 +1,5 @@ import Vue from 'vue'; +import pick from 'lodash/pick'; import { slugify } from '~/lib/utils/text_utility'; import * as types from './mutation_types'; import { normalizeMetric, normalizeQueryResult } from './utils'; @@ -174,15 +175,19 @@ export default { state: emptyStateFromError(error), }); }, - - [types.SET_ENDPOINTS](state, endpoints) { - state.metricsEndpoint = endpoints.metricsEndpoint; - state.deploymentsEndpoint = endpoints.deploymentsEndpoint; - state.dashboardEndpoint = endpoints.dashboardEndpoint; - state.dashboardsEndpoint = endpoints.dashboardsEndpoint; - state.currentDashboard = endpoints.currentDashboard; - state.projectPath = endpoints.projectPath; - state.logsPath = endpoints.logsPath || state.logsPath; + [types.SET_ENDPOINTS](state, endpoints = {}) { + const endpointKeys = [ + 'metricsEndpoint', + 'deploymentsEndpoint', + 'dashboardEndpoint', + 'dashboardsEndpoint', + 'currentDashboard', + 'projectPath', + 'logsPath', + ]; + Object.entries(pick(endpoints, endpointKeys)).forEach(([key, value]) => { + state[key] = value; + }); }, [types.SET_TIME_RANGE](state, timeRange) { state.timeRange = timeRange; diff --git a/app/assets/javascripts/pages/projects/releases/edit/index.js b/app/assets/javascripts/pages/projects/releases/edit/index.js index 98ec196fc37..efa059dcd6d 100644 --- a/app/assets/javascripts/pages/projects/releases/edit/index.js +++ b/app/assets/javascripts/pages/projects/releases/edit/index.js @@ -1,5 +1,5 @@ import ZenMode from '~/zen_mode'; -import initEditRelease from '~/releases/detail'; +import initEditRelease from '~/releases/mount_edit'; document.addEventListener('DOMContentLoaded', () => { new ZenMode(); // eslint-disable-line no-new diff --git a/app/assets/javascripts/pages/projects/releases/index/index.js b/app/assets/javascripts/pages/projects/releases/index/index.js index 6402023149f..24c9cd528b3 100644 --- a/app/assets/javascripts/pages/projects/releases/index/index.js +++ b/app/assets/javascripts/pages/projects/releases/index/index.js @@ -1,3 +1,3 @@ -import initReleases from '~/releases/list'; +import initReleases from '~/releases/mount_index'; document.addEventListener('DOMContentLoaded', initReleases); diff --git a/app/assets/javascripts/releases/detail/components/app.vue b/app/assets/javascripts/releases/components/app_edit.vue similarity index 94% rename from app/assets/javascripts/releases/detail/components/app.vue rename to app/assets/javascripts/releases/components/app_edit.vue index 073cfcd7694..bdc2b3abb8c 100644 --- a/app/assets/javascripts/releases/detail/components/app.vue +++ b/app/assets/javascripts/releases/components/app_edit.vue @@ -7,7 +7,7 @@ import MarkdownField from '~/vue_shared/components/markdown/field.vue'; import autofocusonshow from '~/vue_shared/directives/autofocusonshow'; export default { - name: 'ReleaseDetailApp', + name: 'ReleaseEditApp', components: { GlFormInput, GlFormGroup, @@ -18,7 +18,7 @@ export default { autofocusonshow, }, computed: { - ...mapState([ + ...mapState('detail', [ 'isFetchingRelease', 'fetchError', 'markdownDocsPath', @@ -42,7 +42,7 @@ export default { ); }, tagName() { - return this.$store.state.release.tagName; + return this.$store.state.detail.release.tagName; }, tagNameHintText() { return sprintf( @@ -60,7 +60,7 @@ export default { }, releaseTitle: { get() { - return this.$store.state.release.name; + return this.$store.state.detail.release.name; }, set(title) { this.updateReleaseTitle(title); @@ -68,7 +68,7 @@ export default { }, releaseNotes: { get() { - return this.$store.state.release.description; + return this.$store.state.detail.release.description; }, set(notes) { this.updateReleaseNotes(notes); @@ -79,7 +79,7 @@ export default { this.fetchRelease(); }, methods: { - ...mapActions([ + ...mapActions('detail', [ 'fetchRelease', 'updateRelease', 'updateReleaseTitle', diff --git a/app/assets/javascripts/releases/list/components/app.vue b/app/assets/javascripts/releases/components/app_index.vue similarity index 95% rename from app/assets/javascripts/releases/list/components/app.vue rename to app/assets/javascripts/releases/components/app_index.vue index eb63e709ebd..f602c9fdda2 100644 --- a/app/assets/javascripts/releases/list/components/app.vue +++ b/app/assets/javascripts/releases/components/app_index.vue @@ -32,7 +32,7 @@ export default { }, }, computed: { - ...mapState(['isLoading', 'releases', 'hasError', 'pageInfo']), + ...mapState('list', ['isLoading', 'releases', 'hasError', 'pageInfo']), shouldRenderEmptyState() { return !this.releases.length && !this.hasError && !this.isLoading; }, @@ -47,7 +47,7 @@ export default { }); }, methods: { - ...mapActions(['fetchReleases']), + ...mapActions('list', ['fetchReleases']), onChangePage(page) { historyPushState(buildUrlWithCurrentLocation(`?page=${page}`)); this.fetchReleases({ page, projectId: this.projectId }); diff --git a/app/assets/javascripts/releases/list/components/evidence_block.vue b/app/assets/javascripts/releases/components/evidence_block.vue similarity index 100% rename from app/assets/javascripts/releases/list/components/evidence_block.vue rename to app/assets/javascripts/releases/components/evidence_block.vue diff --git a/app/assets/javascripts/releases/list/components/release_block.vue b/app/assets/javascripts/releases/components/release_block.vue similarity index 100% rename from app/assets/javascripts/releases/list/components/release_block.vue rename to app/assets/javascripts/releases/components/release_block.vue diff --git a/app/assets/javascripts/releases/list/components/release_block_assets.vue b/app/assets/javascripts/releases/components/release_block_assets.vue similarity index 100% rename from app/assets/javascripts/releases/list/components/release_block_assets.vue rename to app/assets/javascripts/releases/components/release_block_assets.vue diff --git a/app/assets/javascripts/releases/list/components/release_block_author.vue b/app/assets/javascripts/releases/components/release_block_author.vue similarity index 100% rename from app/assets/javascripts/releases/list/components/release_block_author.vue rename to app/assets/javascripts/releases/components/release_block_author.vue diff --git a/app/assets/javascripts/releases/list/components/release_block_footer.vue b/app/assets/javascripts/releases/components/release_block_footer.vue similarity index 100% rename from app/assets/javascripts/releases/list/components/release_block_footer.vue rename to app/assets/javascripts/releases/components/release_block_footer.vue diff --git a/app/assets/javascripts/releases/list/components/release_block_header.vue b/app/assets/javascripts/releases/components/release_block_header.vue similarity index 100% rename from app/assets/javascripts/releases/list/components/release_block_header.vue rename to app/assets/javascripts/releases/components/release_block_header.vue diff --git a/app/assets/javascripts/releases/list/components/release_block_metadata.vue b/app/assets/javascripts/releases/components/release_block_metadata.vue similarity index 100% rename from app/assets/javascripts/releases/list/components/release_block_metadata.vue rename to app/assets/javascripts/releases/components/release_block_metadata.vue diff --git a/app/assets/javascripts/releases/list/components/release_block_milestone_info.vue b/app/assets/javascripts/releases/components/release_block_milestone_info.vue similarity index 100% rename from app/assets/javascripts/releases/list/components/release_block_milestone_info.vue rename to app/assets/javascripts/releases/components/release_block_milestone_info.vue diff --git a/app/assets/javascripts/releases/list/components/release_block_milestones.vue b/app/assets/javascripts/releases/components/release_block_milestones.vue similarity index 100% rename from app/assets/javascripts/releases/list/components/release_block_milestones.vue rename to app/assets/javascripts/releases/components/release_block_milestones.vue diff --git a/app/assets/javascripts/releases/list/constants.js b/app/assets/javascripts/releases/constants.js similarity index 100% rename from app/assets/javascripts/releases/list/constants.js rename to app/assets/javascripts/releases/constants.js diff --git a/app/assets/javascripts/releases/detail/index.js b/app/assets/javascripts/releases/detail/index.js deleted file mode 100644 index 0dab90a1ede..00000000000 --- a/app/assets/javascripts/releases/detail/index.js +++ /dev/null @@ -1,19 +0,0 @@ -import Vue from 'vue'; -import ReleaseDetailApp from './components/app.vue'; -import createStore from './store'; - -export default () => { - const el = document.getElementById('js-edit-release-page'); - - const store = createStore(); - store.dispatch('setInitialState', el.dataset); - - return new Vue({ - el, - store, - components: { ReleaseDetailApp }, - render(createElement) { - return createElement('release-detail-app'); - }, - }); -}; diff --git a/app/assets/javascripts/releases/detail/store/index.js b/app/assets/javascripts/releases/detail/store/index.js deleted file mode 100644 index e8623a49356..00000000000 --- a/app/assets/javascripts/releases/detail/store/index.js +++ /dev/null @@ -1,14 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; -import * as actions from './actions'; -import mutations from './mutations'; -import state from './state'; - -Vue.use(Vuex); - -export default () => - new Vuex.Store({ - actions, - mutations, - state, - }); diff --git a/app/assets/javascripts/releases/list/index.js b/app/assets/javascripts/releases/list/index.js deleted file mode 100644 index adbed3cb8e2..00000000000 --- a/app/assets/javascripts/releases/list/index.js +++ /dev/null @@ -1,24 +0,0 @@ -import Vue from 'vue'; -import App from './components/app.vue'; -import createStore from './store'; - -export default () => { - const element = document.getElementById('js-releases-page'); - - return new Vue({ - el: element, - store: createStore(), - components: { - App, - }, - render(createElement) { - return createElement('app', { - props: { - projectId: element.dataset.projectId, - documentationLink: element.dataset.documentationPath, - illustrationPath: element.dataset.illustrationPath, - }, - }); - }, - }); -}; diff --git a/app/assets/javascripts/releases/list/store/index.js b/app/assets/javascripts/releases/list/store/index.js deleted file mode 100644 index 968b94f0e0d..00000000000 --- a/app/assets/javascripts/releases/list/store/index.js +++ /dev/null @@ -1,14 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; -import state from './state'; -import * as actions from './actions'; -import mutations from './mutations'; - -Vue.use(Vuex); - -export default () => - new Vuex.Store({ - actions, - mutations, - state: state(), - }); diff --git a/app/assets/javascripts/releases/mount_edit.js b/app/assets/javascripts/releases/mount_edit.js new file mode 100644 index 00000000000..343de8c56d3 --- /dev/null +++ b/app/assets/javascripts/releases/mount_edit.js @@ -0,0 +1,17 @@ +import Vue from 'vue'; +import ReleaseEditApp from './components/app_edit.vue'; +import createStore from './stores'; +import detailModule from './stores/modules/detail'; + +export default () => { + const el = document.getElementById('js-edit-release-page'); + + const store = createStore({ detail: detailModule }); + store.dispatch('setInitialState', el.dataset); + + return new Vue({ + el, + store, + render: h => h(ReleaseEditApp), + }); +}; diff --git a/app/assets/javascripts/releases/mount_index.js b/app/assets/javascripts/releases/mount_index.js new file mode 100644 index 00000000000..6fcb6d802e4 --- /dev/null +++ b/app/assets/javascripts/releases/mount_index.js @@ -0,0 +1,21 @@ +import Vue from 'vue'; +import ReleaseListApp from './components/app_index.vue'; +import createStore from './stores'; +import listModule from './stores/modules/list'; + +export default () => { + const el = document.getElementById('js-releases-page'); + + return new Vue({ + el, + store: createStore({ list: listModule }), + render: h => + h(ReleaseListApp, { + props: { + projectId: el.dataset.projectId, + documentationLink: el.dataset.documentationPath, + illustrationPath: el.dataset.illustrationPath, + }, + }), + }); +}; diff --git a/app/assets/javascripts/releases/stores/index.js b/app/assets/javascripts/releases/stores/index.js new file mode 100644 index 00000000000..aa607906a0e --- /dev/null +++ b/app/assets/javascripts/releases/stores/index.js @@ -0,0 +1,6 @@ +import Vue from 'vue'; +import Vuex from 'vuex'; + +Vue.use(Vuex); + +export default modules => new Vuex.Store({ modules }); diff --git a/app/assets/javascripts/releases/detail/store/actions.js b/app/assets/javascripts/releases/stores/modules/detail/actions.js similarity index 100% rename from app/assets/javascripts/releases/detail/store/actions.js rename to app/assets/javascripts/releases/stores/modules/detail/actions.js diff --git a/app/assets/javascripts/releases/stores/modules/detail/index.js b/app/assets/javascripts/releases/stores/modules/detail/index.js new file mode 100644 index 00000000000..243c2389d8c --- /dev/null +++ b/app/assets/javascripts/releases/stores/modules/detail/index.js @@ -0,0 +1,10 @@ +import * as actions from './actions'; +import mutations from './mutations'; +import state from './state'; + +export default { + namespaced: true, + actions, + mutations, + state, +}; diff --git a/app/assets/javascripts/releases/detail/store/mutation_types.js b/app/assets/javascripts/releases/stores/modules/detail/mutation_types.js similarity index 100% rename from app/assets/javascripts/releases/detail/store/mutation_types.js rename to app/assets/javascripts/releases/stores/modules/detail/mutation_types.js diff --git a/app/assets/javascripts/releases/detail/store/mutations.js b/app/assets/javascripts/releases/stores/modules/detail/mutations.js similarity index 100% rename from app/assets/javascripts/releases/detail/store/mutations.js rename to app/assets/javascripts/releases/stores/modules/detail/mutations.js diff --git a/app/assets/javascripts/releases/detail/store/state.js b/app/assets/javascripts/releases/stores/modules/detail/state.js similarity index 100% rename from app/assets/javascripts/releases/detail/store/state.js rename to app/assets/javascripts/releases/stores/modules/detail/state.js diff --git a/app/assets/javascripts/releases/list/store/actions.js b/app/assets/javascripts/releases/stores/modules/list/actions.js similarity index 100% rename from app/assets/javascripts/releases/list/store/actions.js rename to app/assets/javascripts/releases/stores/modules/list/actions.js diff --git a/app/assets/javascripts/releases/stores/modules/list/index.js b/app/assets/javascripts/releases/stores/modules/list/index.js new file mode 100644 index 00000000000..e4633b15a0c --- /dev/null +++ b/app/assets/javascripts/releases/stores/modules/list/index.js @@ -0,0 +1,10 @@ +import state from './state'; +import * as actions from './actions'; +import mutations from './mutations'; + +export default { + namespaced: true, + actions, + mutations, + state, +}; diff --git a/app/assets/javascripts/releases/list/store/mutation_types.js b/app/assets/javascripts/releases/stores/modules/list/mutation_types.js similarity index 100% rename from app/assets/javascripts/releases/list/store/mutation_types.js rename to app/assets/javascripts/releases/stores/modules/list/mutation_types.js diff --git a/app/assets/javascripts/releases/list/store/mutations.js b/app/assets/javascripts/releases/stores/modules/list/mutations.js similarity index 100% rename from app/assets/javascripts/releases/list/store/mutations.js rename to app/assets/javascripts/releases/stores/modules/list/mutations.js diff --git a/app/assets/javascripts/releases/list/store/state.js b/app/assets/javascripts/releases/stores/modules/list/state.js similarity index 100% rename from app/assets/javascripts/releases/list/store/state.js rename to app/assets/javascripts/releases/stores/modules/list/state.js diff --git a/app/controllers/admin/application_settings_controller.rb b/app/controllers/admin/application_settings_controller.rb index 8a583e16c0b..54c9bde067d 100644 --- a/app/controllers/admin/application_settings_controller.rb +++ b/app/controllers/admin/application_settings_controller.rb @@ -56,7 +56,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController end def clear_repository_check_states - RepositoryCheck::ClearWorker.perform_async + RepositoryCheck::ClearWorker.perform_async # rubocop:disable CodeReuse/Worker redirect_to( general_admin_application_settings_path, @@ -73,7 +73,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController # Specs are in spec/requests/self_monitoring_project_spec.rb def create_self_monitoring_project - job_id = SelfMonitoringProjectCreateWorker.perform_async + job_id = SelfMonitoringProjectCreateWorker.perform_async # rubocop:disable CodeReuse/Worker render status: :accepted, json: { job_id: job_id, @@ -92,7 +92,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController } end - if SelfMonitoringProjectCreateWorker.in_progress?(job_id) + if SelfMonitoringProjectCreateWorker.in_progress?(job_id) # rubocop:disable CodeReuse/Worker ::Gitlab::PollingInterval.set_header(response, interval: 3_000) return render status: :accepted, json: { @@ -112,7 +112,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController # Specs are in spec/requests/self_monitoring_project_spec.rb def delete_self_monitoring_project - job_id = SelfMonitoringProjectDeleteWorker.perform_async + job_id = SelfMonitoringProjectDeleteWorker.perform_async # rubocop:disable CodeReuse/Worker render status: :accepted, json: { job_id: job_id, @@ -131,7 +131,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController } end - if SelfMonitoringProjectDeleteWorker.in_progress?(job_id) + if SelfMonitoringProjectDeleteWorker.in_progress?(job_id) # rubocop:disable CodeReuse/Worker ::Gitlab::PollingInterval.set_header(response, interval: 3_000) return render status: :accepted, json: { diff --git a/app/controllers/admin/projects_controller.rb b/app/controllers/admin/projects_controller.rb index cdedc34e634..7015da8bd50 100644 --- a/app/controllers/admin/projects_controller.rb +++ b/app/controllers/admin/projects_controller.rb @@ -55,7 +55,7 @@ class Admin::ProjectsController < Admin::ApplicationController # rubocop: enable CodeReuse/ActiveRecord def repository_check - RepositoryCheck::SingleRepositoryWorker.perform_async(@project.id) + RepositoryCheck::SingleRepositoryWorker.perform_async(@project.id) # rubocop:disable CodeReuse/Worker redirect_to( admin_project_path(@project), diff --git a/app/controllers/admin/services_controller.rb b/app/controllers/admin/services_controller.rb index e31e0e09978..50b79cde5c5 100644 --- a/app/controllers/admin/services_controller.rb +++ b/app/controllers/admin/services_controller.rb @@ -19,7 +19,7 @@ class Admin::ServicesController < Admin::ApplicationController def update if service.update(service_params[:service]) - PropagateServiceTemplateWorker.perform_async(service.id) if service.active? + PropagateServiceTemplateWorker.perform_async(service.id) if service.active? # rubocop:disable CodeReuse/Worker redirect_to admin_application_settings_services_path, notice: 'Application settings saved successfully' diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb index 0944d7b47bf..35f803302eb 100644 --- a/app/controllers/projects/issues_controller.rb +++ b/app/controllers/projects/issues_controller.rb @@ -188,7 +188,7 @@ class Projects::IssuesController < Projects::ApplicationController def import_csv if uploader = UploadService.new(project, params[:file]).execute - ImportIssuesCsvWorker.perform_async(current_user.id, project.id, uploader.upload.id) + ImportIssuesCsvWorker.perform_async(current_user.id, project.id, uploader.upload.id) # rubocop:disable CodeReuse/Worker flash[:notice] = _("Your issues are being imported. Once finished, you'll get a confirmation email.") else diff --git a/app/controllers/projects/pipeline_schedules_controller.rb b/app/controllers/projects/pipeline_schedules_controller.rb index 6a7e2b69652..ead839e8441 100644 --- a/app/controllers/projects/pipeline_schedules_controller.rb +++ b/app/controllers/projects/pipeline_schedules_controller.rb @@ -47,7 +47,7 @@ class Projects::PipelineSchedulesController < Projects::ApplicationController end def play - job_id = RunPipelineScheduleWorker.perform_async(schedule.id, current_user.id) + job_id = RunPipelineScheduleWorker.perform_async(schedule.id, current_user.id) # rubocop:disable CodeReuse/Worker if job_id pipelines_link_start = "" diff --git a/app/controllers/projects/registry/repositories_controller.rb b/app/controllers/projects/registry/repositories_controller.rb index b31a74540e2..e524d1c29a2 100644 --- a/app/controllers/projects/registry/repositories_controller.rb +++ b/app/controllers/projects/registry/repositories_controller.rb @@ -32,7 +32,7 @@ module Projects end def destroy - DeleteContainerRepositoryWorker.perform_async(current_user.id, image.id) + DeleteContainerRepositoryWorker.perform_async(current_user.id, image.id) # rubocop:disable CodeReuse/Worker track_event(:delete_repository) respond_to do |format| diff --git a/app/controllers/projects/settings/ci_cd_controller.rb b/app/controllers/projects/settings/ci_cd_controller.rb index 6af815b8daa..bf0c2d885f8 100644 --- a/app/controllers/projects/settings/ci_cd_controller.rb +++ b/app/controllers/projects/settings/ci_cd_controller.rb @@ -69,7 +69,9 @@ module Projects return end + # rubocop:disable CodeReuse/Worker CreatePipelineWorker.perform_async(project.id, current_user.id, project.default_branch, :web, ignore_skip_ci: true, save_on_errors: false) + # rubocop:enable CodeReuse/Worker pipelines_link_start = ''.html_safe % { url: project_pipelines_path(@project) } flash[:toast] = _("A new Auto DevOps pipeline has been created, go to %{pipelines_link_start}Pipelines page%{pipelines_link_end} for details") % { pipelines_link_start: pipelines_link_start, pipelines_link_end: "".html_safe } diff --git a/app/controllers/projects/settings/repository_controller.rb b/app/controllers/projects/settings/repository_controller.rb index 0c634bbea03..63f5d5073a7 100644 --- a/app/controllers/projects/settings/repository_controller.rb +++ b/app/controllers/projects/settings/repository_controller.rb @@ -25,7 +25,7 @@ module Projects result = Projects::UpdateService.new(project, current_user, cleanup_params).execute if result[:status] == :success - RepositoryCleanupWorker.perform_async(project.id, current_user.id) + RepositoryCleanupWorker.perform_async(project.id, current_user.id) # rubocop:disable CodeReuse/Worker flash[:notice] = _('Repository cleanup has started. You will receive an email once the cleanup operation is complete.') else flash[:alert] = _('Failed to upload object map file') diff --git a/app/controllers/repositories/git_http_controller.rb b/app/controllers/repositories/git_http_controller.rb index 82431ae286a..75c79881264 100644 --- a/app/controllers/repositories/git_http_controller.rb +++ b/app/controllers/repositories/git_http_controller.rb @@ -80,7 +80,7 @@ module Repositories return unless repo_type.project? return unless project&.daily_statistics_enabled? - ProjectDailyStatisticsWorker.perform_async(project.id) + ProjectDailyStatisticsWorker.perform_async(project.id) # rubocop:disable CodeReuse/Worker end def access diff --git a/app/helpers/analytics_navbar_helper.rb b/app/helpers/analytics_navbar_helper.rb index bbb7470d1fd..021b9bb10cd 100644 --- a/app/helpers/analytics_navbar_helper.rb +++ b/app/helpers/analytics_navbar_helper.rb @@ -31,7 +31,7 @@ module AnalyticsNavbarHelper end def cycle_analytics_navbar_link(project, current_user) - return unless Feature.enabled?(:analytics_pages_under_project_analytics_sidebar, project) + return unless Feature.enabled?(:analytics_pages_under_project_analytics_sidebar, project, default_enabled: true) return unless project_nav_tab?(:cycle_analytics) navbar_sub_item( @@ -43,7 +43,7 @@ module AnalyticsNavbarHelper end def repository_analytics_navbar_link(project, current_user) - return if Feature.disabled?(:analytics_pages_under_project_analytics_sidebar, project) + return if Feature.disabled?(:analytics_pages_under_project_analytics_sidebar, project, default_enabled: true) return if project.empty_repo? navbar_sub_item( @@ -55,7 +55,7 @@ module AnalyticsNavbarHelper end def ci_cd_analytics_navbar_link(project, current_user) - return unless Feature.enabled?(:analytics_pages_under_project_analytics_sidebar, project) + return unless Feature.enabled?(:analytics_pages_under_project_analytics_sidebar, project, default_enabled: true) return unless project_nav_tab?(:pipelines) return unless project.feature_available?(:builds, current_user) || !project.empty_repo? diff --git a/app/services/ci/process_build_service.rb b/app/services/ci/process_build_service.rb index eb92c7d1a27..12cdca24066 100644 --- a/app/services/ci/process_build_service.rb +++ b/app/services/ci/process_build_service.rb @@ -3,7 +3,7 @@ module Ci class ProcessBuildService < BaseService def execute(build, current_status) - if valid_statuses_for_when(build.when).include?(current_status) + if valid_statuses_for_build(build).include?(current_status) if build.schedulable? build.schedule elsif build.action? @@ -25,10 +25,10 @@ module Ci build.enqueue end - def valid_statuses_for_when(value) - case value + def valid_statuses_for_build(build) + case build.when when 'on_success' - %w[success skipped] + build.scheduling_type_dag? ? %w[success] : %w[success skipped] when 'on_failure' %w[failed] when 'always' diff --git a/app/views/layouts/nav/sidebar/_analytics_links.html.haml b/app/views/layouts/nav/sidebar/_analytics_links.html.haml index b859a1ade66..e87cf92374a 100644 --- a/app/views/layouts/nav/sidebar/_analytics_links.html.haml +++ b/app/views/layouts/nav/sidebar/_analytics_links.html.haml @@ -6,10 +6,10 @@ = link_to navbar_links.first.link do .nav-icon-container = sprite_icon('chart') - %span.nav-item-name + %span.nav-item-name{ data: { qa_selector: 'analytics_link' } } = _('Analytics') - %ul.sidebar-sub-level-items + %ul.sidebar-sub-level-items{ data: { qa_selector: 'analytics_sidebar_submenu' } } - navbar_links.each do |menu_item| = nav_link(path: menu_item.path) do = link_to(menu_item.link, menu_item.link_to_options) do diff --git a/app/views/layouts/nav/sidebar/_group.html.haml b/app/views/layouts/nav/sidebar/_group.html.haml index 60c5ef3877f..c00c48b623c 100644 --- a/app/views/layouts/nav/sidebar/_group.html.haml +++ b/app/views/layouts/nav/sidebar/_group.html.haml @@ -1,4 +1,4 @@ -- should_display_analytics_pages_in_sidebar = Feature.enabled?(:analytics_pages_under_group_analytics_sidebar, @group) +- should_display_analytics_pages_in_sidebar = Feature.enabled?(:analytics_pages_under_group_analytics_sidebar, @group, default_enabled: true) - issues_count = group_issues_count(state: 'opened') - merge_requests_count = group_merge_requests_count(state: 'opened') diff --git a/app/views/layouts/nav/sidebar/_project.html.haml b/app/views/layouts/nav/sidebar/_project.html.haml index c587d0ca053..b9324f0596c 100644 --- a/app/views/layouts/nav/sidebar/_project.html.haml +++ b/app/views/layouts/nav/sidebar/_project.html.haml @@ -1,4 +1,4 @@ -- should_display_analytics_pages_in_sidebar = Feature.enabled?(:analytics_pages_under_project_analytics_sidebar, @project) +- should_display_analytics_pages_in_sidebar = Feature.enabled?(:analytics_pages_under_project_analytics_sidebar, @project, default_enabled: true) .nav-sidebar{ class: ("sidebar-collapsed-desktop" if collapsed_sidebar?) } .nav-sidebar-inner-scroll @@ -9,7 +9,7 @@ = project_icon(@project, alt: @project.name, class: 'avatar s40 avatar-tile', width: 40, height: 40) .sidebar-context-title = @project.name - %ul.sidebar-top-level-items + %ul.sidebar-top-level-items.qa-project-sidebar - paths = sidebar_projects_paths - paths << 'cycle_analytics#show' unless should_display_analytics_pages_in_sidebar = nav_link(path: paths, html_options: { class: 'home' }) do diff --git a/changelogs/unreleased/31526-skip-if-needed-job-skipped.yml b/changelogs/unreleased/31526-skip-if-needed-job-skipped.yml new file mode 100644 index 00000000000..27b2e5f9b8e --- /dev/null +++ b/changelogs/unreleased/31526-skip-if-needed-job-skipped.yml @@ -0,0 +1,5 @@ +--- +title: Prevent DAG builds to run after skipped need build +merge_request: 23405 +author: +type: fixed diff --git a/changelogs/unreleased/55487-backfill-lfs-objects-projects-sql.yml b/changelogs/unreleased/55487-backfill-lfs-objects-projects-sql.yml new file mode 100644 index 00000000000..45dd3c6e9f5 --- /dev/null +++ b/changelogs/unreleased/55487-backfill-lfs-objects-projects-sql.yml @@ -0,0 +1,5 @@ +--- +title: Backfill LfsObjectsProject records of forks +merge_request: 24767 +author: +type: other diff --git a/changelogs/unreleased/georgekoltsov-object_builder_convert_empty_strings.yml b/changelogs/unreleased/georgekoltsov-object_builder_convert_empty_strings.yml new file mode 100644 index 00000000000..31eca8a2653 --- /dev/null +++ b/changelogs/unreleased/georgekoltsov-object_builder_convert_empty_strings.yml @@ -0,0 +1,6 @@ +--- +title: Fix Group Import existing objects lookup when description attribute is an empty + string +merge_request: 25187 +author: +type: fixed diff --git a/changelogs/unreleased/jcunha-update-managed-apps-template.yml b/changelogs/unreleased/jcunha-update-managed-apps-template.yml new file mode 100644 index 00000000000..145a15c6ae0 --- /dev/null +++ b/changelogs/unreleased/jcunha-update-managed-apps-template.yml @@ -0,0 +1,5 @@ +--- +title: Update cluster-applications to v0.8.0 +merge_request: 25138 +author: +type: changed diff --git a/changelogs/unreleased/toggle-analytics-navbar-feature-flags.yml b/changelogs/unreleased/toggle-analytics-navbar-feature-flags.yml new file mode 100644 index 00000000000..506e4fffdbb --- /dev/null +++ b/changelogs/unreleased/toggle-analytics-navbar-feature-flags.yml @@ -0,0 +1,5 @@ +--- +title: Move analytics pages under the sidebar for projects and groups +merge_request: 24470 +author: +type: changed diff --git a/db/post_migrate/20200210062432_schedule_link_lfs_objects.rb b/db/post_migrate/20200210062432_schedule_link_lfs_objects.rb new file mode 100644 index 00000000000..c955639c259 --- /dev/null +++ b/db/post_migrate/20200210062432_schedule_link_lfs_objects.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +class ScheduleLinkLfsObjects < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + MIGRATION = 'LinkLfsObjects' + BATCH_SIZE = 1_000 + + disable_ddl_transaction! + + class Project < ActiveRecord::Base + include EachBatch + + self.table_name = 'projects' + end + + def up + fork_network_members = + Gitlab::BackgroundMigration::LinkLfsObjects::ForkNetworkMember + .select(1) + .with_non_existing_lfs_objects + .where('fork_network_members.project_id = projects.id') + + forks = Project.where('EXISTS (?)', fork_network_members) + + queue_background_migration_jobs_by_range_at_intervals( + forks, + MIGRATION, + BackgroundMigrationWorker.minimum_interval, + batch_size: BATCH_SIZE + ) + end + + def down + # no-op + end +end diff --git a/doc/user/group/contribution_analytics/index.md b/doc/user/group/contribution_analytics/index.md index 4411c7834a4..1bbc40a14a4 100644 --- a/doc/user/group/contribution_analytics/index.md +++ b/doc/user/group/contribution_analytics/index.md @@ -16,7 +16,7 @@ group: - Merge requests - Push events -To view the Contribution Analytics, go to your group's **Overview > Contribution Analytics** +To view the Contribution Analytics, go to your group's **Analytics > Contribution Analytics** page. ## Use cases diff --git a/doc/user/group/insights/img/insights_sidebar_link.png b/doc/user/group/insights/img/insights_sidebar_link.png deleted file mode 100644 index f7b0c2daae3a4c175f47282e0cde52e3057ffdb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12327 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 diff --git a/doc/user/group/insights/img/insights_sidebar_link_v12_8.png b/doc/user/group/insights/img/insights_sidebar_link_v12_8.png new file mode 100644 index 0000000000000000000000000000000000000000..9a6d6bae766cfe2cf3d118914846ef4697e9df79 GIT binary patch literal 7773 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 literal 0 HcmV?d00001 diff --git a/doc/user/group/insights/index.md b/doc/user/group/insights/index.md index 7e933c66789..edbb85962ed 100644 --- a/doc/user/group/insights/index.md +++ b/doc/user/group/insights/index.md @@ -14,10 +14,10 @@ requests to be merged and much more. ## View your group's Insights -You can access your group's Insights by clicking the **Overview > Insights** +You can access your group's Insights by clicking the **Analytics > Insights** link in the left sidebar: -![Insights sidebar link](img/insights_sidebar_link.png) +![Insights sidebar link](img/insights_sidebar_link_v12_8.png) ## Configure your Insights diff --git a/doc/user/group/issues_analytics/img/issues_created_per_month.png b/doc/user/group/issues_analytics/img/issues_created_per_month.png deleted file mode 100644 index 96f0d36c91702b16d4ace52c4c5f6ac650a4e8c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28508 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 Analytics**. +To access the chart, navigate to a group's sidebar and select **Analytics > Issues Analytics**. Hover over each bar to see the total number of issues. @@ -28,7 +28,7 @@ You can change the total number of months displayed by setting a URL parameter. For example, `https://gitlab.com/groups/gitlab-org/-/issues_analytics?months_back=15` shows a total of 15 months for the chart in the GitLab.org group. -![Issues created per month](img/issues_created_per_month.png) +![Issues created per month](img/issues_created_per_month_v12_8.png)