From 5d41ea8c8e83ff6054ba4303ec8dc9bc33556602 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 21 Jul 2022 18:10:08 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .../components/navigation_popover.vue | 122 -------------- .../javascripts/attention_requests/index.js | 73 -------- .../commons/nav/user_merge_requests.js | 21 +-- .../add_extra_tokens_for_merge_requests.js | 15 -- app/assets/javascripts/gfm_auto_complete.js | 19 --- app/assets/javascripts/main.js | 6 - .../components/assignees/assignees.vue | 10 +- .../assignees/issuable_assignees.vue | 6 - .../assignees/sidebar_assignees.vue | 4 - .../assignees/uncollapsed_assignee_list.vue | 22 +-- .../components/attention_requested_toggle.vue | 105 ------------ .../components/reviewers/reviewers.vue | 4 - .../reviewers/sidebar_reviewers.vue | 4 - .../reviewers/uncollapsed_reviewer_list.vue | 20 +-- .../javascripts/sidebar/mount_sidebar.js | 9 - .../remove_attention_request.mutation.graphql | 7 - .../request_attention.mutation.graphql | 5 - .../sidebar/services/sidebar_service.js | 23 --- .../javascripts/sidebar/sidebar_bundle.js | 12 +- .../javascripts/sidebar/sidebar_mediator.js | 87 +--------- .../sidebar/stores/sidebar_store.js | 34 ---- .../components/approvals/approvals.vue | 11 -- .../projects/merge_requests_controller.rb | 1 - app/helpers/dashboard_helper.rb | 4 - app/models/ci/runner.rb | 2 +- app/models/environment.rb | 6 +- .../projects/import_export/relation_export.rb | 41 +++++ app/serializers/environment_serializer.rb | 13 +- .../import_export/relation_export_service.rb | 95 +++++++++++ .../work_items/create_and_link_service.rb | 2 +- app/views/layouts/header/_default.html.haml | 19 +-- .../projects/merge_requests/show.html.haml | 3 - .../shared/issuable/_assignees.html.haml | 7 +- .../_merge_request_assignees.html.haml | 8 - .../_merge_request_reviewers.html.haml | 8 - .../shared/issuable/_reviewers.html.haml | 7 +- .../shared/issuable/_search_bar.html.haml | 10 -- app/workers/all_queues.yml | 9 + .../import_export/relation_export_worker.rb | 26 +++ ...load_environment_last_deployment_group.yml | 8 - config/sidekiq_queues.yml | 2 + ...542_drop_queued_at_index_from_ci_builds.rb | 17 ++ ...9165537_remove_ci_runners_semver_column.rb | 21 +++ db/schema_migrations/20220719081542 | 1 + db/schema_migrations/20220719165537 | 1 + db/structure.sql | 6 - doc/api/jobs.md | 8 +- doc/api/users.md | 6 +- .../database/ci_mirrored_tables.md | 156 ++++++++++++++++++ doc/development/documentation/testing.md | 3 +- .../container_scanning/index.md | 3 +- doc/user/project/repository/mirror/index.md | 5 + .../backfill_ci_runner_semver.rb | 31 ---- .../Jobs/Dependency-Scanning.gitlab-ci.yml | 3 +- .../Jobs/License-Scanning.gitlab-ci.yml | 3 +- .../ci/templates/Jobs/SAST-IaC.gitlab-ci.yml | 3 +- .../Jobs/SAST-IaC.latest.gitlab-ci.yml | 3 +- .../ci/templates/Jobs/SAST.gitlab-ci.yml | 3 +- .../templates/Jobs/SAST.latest.gitlab-ci.yml | 3 +- .../Jobs/Secret-Detection.gitlab-ci.yml | 3 +- .../Secret-Detection.latest.gitlab-ci.yml | 3 +- .../Security/API-Fuzzing.gitlab-ci.yml | 3 +- .../Security/API-Fuzzing.latest.gitlab-ci.yml | 3 +- .../templates/Security/DAST-API.gitlab-ci.yml | 3 +- .../Security/DAST-API.latest.gitlab-ci.yml | 3 +- .../DAST-On-Demand-API-Scan.gitlab-ci.yml | 3 +- .../DAST-On-Demand-Scan.gitlab-ci.yml | 3 +- .../ci/templates/Security/DAST.gitlab-ci.yml | 3 +- .../Security/DAST.latest.gitlab-ci.yml | 3 +- .../Security/Secure-Binaries.gitlab-ci.yml | 3 +- .../importer/events/base_importer.rb | 32 ++++ .../importer/events/changed_assignee.rb | 52 ++++++ .../importer/events/changed_label.rb | 12 +- .../importer/events/changed_milestone.rb | 12 +- .../github_import/importer/events/closed.rb | 14 +- .../importer/events/cross_referenced.rb | 19 +-- .../github_import/importer/events/renamed.rb | 12 +- .../github_import/importer/events/reopened.rb | 14 +- .../importer/issue_event_importer.rb | 45 +++-- .../representation/issue_event.rb | 75 +++++---- lib/gitlab/github_import/user_finder.rb | 12 +- .../import_export/project/relation_saver.rb | 57 +++++++ locale/gitlab.pot | 51 ------ spec/commands/sidekiq_cluster/cli_spec.rb | 4 +- .../merge_requests/user_mass_updates_spec.rb | 14 -- .../components/navigation_popover_spec.js | 88 ---------- .../components/pipeline_editor_tabs_spec.js | 6 +- .../registration/registration_token_spec.js | 27 +-- .../attention_requested_toggle_spec.js | 121 -------------- .../uncollapsed_reviewer_list_spec.js | 15 -- .../frontend/sidebar/sidebar_mediator_spec.js | 92 ----------- .../states/mr_widget_ready_to_merge_spec.js | 9 +- .../components/app_spec.js | 8 +- .../components/hierarchy_spec.js | 7 +- spec/graphql/types/project_type_spec.rb | 4 +- .../backfill_ci_runner_semver_spec.rb | 54 ------ .../importer/events/base_importer_spec.rb | 15 ++ .../importer/events/changed_assignee_spec.rb | 91 ++++++++++ .../importer/events/changed_label_spec.rb | 7 +- .../importer/events/changed_milestone_spec.rb | 7 +- .../importer/events/closed_spec.rb | 10 +- .../importer/events/cross_referenced_spec.rb | 10 +- .../importer/events/renamed_spec.rb | 10 +- .../importer/events/reopened_spec.rb | 10 +- .../importer/issue_event_importer_spec.rb | 22 ++- .../representation/issue_event_spec.rb | 33 +++- .../gitlab/github_import/user_finder_spec.rb | 66 ++++++-- .../project/relation_saver_spec.rb | 125 ++++++++++++++ spec/models/environment_spec.rb | 10 -- .../import_export/relation_export_spec.rb | 32 ++++ .../relation_export_service_spec.rb | 121 ++++++++++++++ .../sast_parser_service_spec.rb | 1 + .../create_and_link_service_spec.rb | 2 + .../create_from_task_service_spec.rb | 2 + spec/support/helpers/ci/template_helpers.rb | 4 + .../work_items/create_task_shared_examples.rb | 16 ++ .../relation_export_worker_spec.rb | 36 ++++ 117 files changed, 1276 insertions(+), 1409 deletions(-) delete mode 100644 app/assets/javascripts/attention_requests/components/navigation_popover.vue delete mode 100644 app/assets/javascripts/attention_requests/index.js delete mode 100644 app/assets/javascripts/sidebar/components/attention_requested_toggle.vue delete mode 100644 app/assets/javascripts/sidebar/queries/remove_attention_request.mutation.graphql delete mode 100644 app/assets/javascripts/sidebar/queries/request_attention.mutation.graphql create mode 100644 app/services/projects/import_export/relation_export_service.rb delete mode 100644 app/views/shared/issuable/_merge_request_assignees.html.haml delete mode 100644 app/views/shared/issuable/_merge_request_reviewers.html.haml create mode 100644 app/workers/projects/import_export/relation_export_worker.rb delete mode 100644 config/feature_flags/development/batch_load_environment_last_deployment_group.yml create mode 100644 db/post_migrate/20220719081542_drop_queued_at_index_from_ci_builds.rb create mode 100644 db/post_migrate/20220719165537_remove_ci_runners_semver_column.rb create mode 100644 db/schema_migrations/20220719081542 create mode 100644 db/schema_migrations/20220719165537 create mode 100644 doc/development/database/ci_mirrored_tables.md delete mode 100644 lib/gitlab/background_migration/backfill_ci_runner_semver.rb create mode 100644 lib/gitlab/github_import/importer/events/base_importer.rb create mode 100644 lib/gitlab/github_import/importer/events/changed_assignee.rb create mode 100644 lib/gitlab/import_export/project/relation_saver.rb delete mode 100644 spec/frontend/attention_requests/components/navigation_popover_spec.js delete mode 100644 spec/frontend/sidebar/components/attention_requested_toggle_spec.js delete mode 100644 spec/lib/gitlab/background_migration/backfill_ci_runner_semver_spec.rb create mode 100644 spec/lib/gitlab/github_import/importer/events/base_importer_spec.rb create mode 100644 spec/lib/gitlab/github_import/importer/events/changed_assignee_spec.rb create mode 100644 spec/lib/gitlab/import_export/project/relation_saver_spec.rb create mode 100644 spec/services/projects/import_export/relation_export_service_spec.rb create mode 100644 spec/support/shared_examples/services/work_items/create_task_shared_examples.rb create mode 100644 spec/workers/projects/import_export/relation_export_worker_spec.rb diff --git a/app/assets/javascripts/attention_requests/components/navigation_popover.vue b/app/assets/javascripts/attention_requests/components/navigation_popover.vue deleted file mode 100644 index 804eda8f321..00000000000 --- a/app/assets/javascripts/attention_requests/components/navigation_popover.vue +++ /dev/null @@ -1,122 +0,0 @@ - - - diff --git a/app/assets/javascripts/attention_requests/index.js b/app/assets/javascripts/attention_requests/index.js deleted file mode 100644 index 2a142ab46e5..00000000000 --- a/app/assets/javascripts/attention_requests/index.js +++ /dev/null @@ -1,73 +0,0 @@ -import Vue from 'vue'; -import VueApollo from 'vue-apollo'; -import { __ } from '~/locale'; -import createDefaultClient from '~/lib/graphql'; -import NavigationPopover from './components/navigation_popover.vue'; - -Vue.use(VueApollo); - -const apolloProvider = new VueApollo({ - defaultClient: createDefaultClient(), -}); - -export const initTopNavPopover = () => { - const el = document.getElementById('js-need-attention-nav-onboarding'); - - if (!el) return; - - // eslint-disable-next-line no-new - new Vue({ - el, - apolloProvider, - provide: { - observerElSelector: '.user-counter.dropdown', - observerElToggledClass: 'show', - message: [ - __( - '%{strongStart}Need your attention%{strongEnd} are the merge requests that need your help to move forward, as an assignee or reviewer.', - ), - ], - featureName: 'attention_requests_top_nav', - popoverTarget: '#js-need-attention-nav', - }, - render(h) { - return h(NavigationPopover); - }, - }); -}; - -export const initSideNavPopover = () => { - const el = document.getElementById('js-need-attention-sidebar-onboarding'); - - if (!el) return; - - // eslint-disable-next-line no-new - new Vue({ - el, - apolloProvider, - provide: { - observerElSelector: '.js-right-sidebar', - observerElToggledClass: 'right-sidebar-expanded', - message: [ - __( - 'To ask someone to look at a merge request, select %{strongStart}Request attention%{strongEnd}. Select again to remove the request.', - ), - __( - 'Some actions remove attention requests, like a reviewer approving or anyone merging the merge request.', - ), - ], - featureName: 'attention_requests_side_nav', - popoverTarget: '.js-attention-request-toggle', - showAttentionIcon: true, - delay: 500, - popoverCssClass: 'attention-request-sidebar-popover', - }, - render(h) { - return h(NavigationPopover); - }, - }); -}; - -export default () => { - initTopNavPopover(); -}; diff --git a/app/assets/javascripts/commons/nav/user_merge_requests.js b/app/assets/javascripts/commons/nav/user_merge_requests.js index 784e9cb2faa..b105273ece7 100644 --- a/app/assets/javascripts/commons/nav/user_merge_requests.js +++ b/app/assets/javascripts/commons/nav/user_merge_requests.js @@ -26,39 +26,20 @@ function updateMergeRequestCounts(newCount) { mergeRequestsCountEl.classList.toggle('gl-display-none', Number(newCount) === 0); } -function updateAttentionRequestsCount(count) { - const attentionCountEl = document.querySelector('.js-attention-count'); - attentionCountEl.textContent = count.toLocaleString(); - - if (Number(count) === 0) { - attentionCountEl.classList.replace('badge-warning', 'badge-neutral'); - } else { - attentionCountEl.classList.replace('badge-neutral', 'badge-warning'); - } -} - /** * Refresh user counts (and broadcast if open) */ export function refreshUserMergeRequestCounts() { return getUserCounts() .then(({ data }) => { - const attentionRequestsEnabled = window.gon?.features?.mrAttentionRequests; const assignedMergeRequests = data.assigned_merge_requests; const reviewerMergeRequests = data.review_requested_merge_requests; - const attentionRequests = data.attention_requests; - const fullCount = attentionRequestsEnabled - ? attentionRequests - : assignedMergeRequests + reviewerMergeRequests; + const fullCount = assignedMergeRequests + reviewerMergeRequests; updateUserMergeRequestCounts(assignedMergeRequests); updateReviewerMergeRequestCounts(reviewerMergeRequests); updateMergeRequestCounts(fullCount); broadcastCount(fullCount); - - if (attentionRequestsEnabled) { - updateAttentionRequestsCount(attentionRequests); - } }) .catch((ex) => { console.error(ex); // eslint-disable-line no-console diff --git a/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js b/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js index 28a3c54cc8f..d00e6e59cf5 100644 --- a/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js +++ b/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js @@ -13,21 +13,6 @@ export default (IssuableTokenKeys, disableTargetBranchFilter = false) => { IssuableTokenKeys.tokenKeys.splice(2, 0, reviewerToken); IssuableTokenKeys.tokenKeysWithAlternative.splice(2, 0, reviewerToken); - if (window.gon?.features?.mrAttentionRequests) { - const attentionRequestedToken = { - formattedKey: __('Attention'), - key: 'attention', - type: 'string', - param: '', - symbol: '@', - icon: 'user', - tag: '@attention', - hideNotEqual: true, - }; - IssuableTokenKeys.tokenKeys.splice(2, 0, attentionRequestedToken); - IssuableTokenKeys.tokenKeysWithAlternative.splice(2, 0, attentionRequestedToken); - } - const draftToken = { token: { formattedKey: __('Draft'), diff --git a/app/assets/javascripts/gfm_auto_complete.js b/app/assets/javascripts/gfm_auto_complete.js index d4dafbdc94f..7aea3715971 100644 --- a/app/assets/javascripts/gfm_auto_complete.js +++ b/app/assets/javascripts/gfm_auto_complete.js @@ -276,8 +276,6 @@ class GfmAutoComplete { UNASSIGN_REVIEWER: '/unassign_reviewer', REASSIGN: '/reassign', CC: '/cc', - ATTENTION: '/attention', - REMOVE_ATTENTION: '/remove_attention', }; let assignees = []; let reviewers = []; @@ -356,23 +354,6 @@ class GfmAutoComplete { } else if (command === MEMBER_COMMAND.UNASSIGN_REVIEWER) { // Only include members which are not assigned as a reviewer to Issuable currently return data.filter((member) => reviewers.includes(member.search)); - } else if ( - command === MEMBER_COMMAND.ATTENTION || - command === MEMBER_COMMAND.REMOVE_ATTENTION - ) { - const attentionUsers = [ - ...(SidebarMediator.singleton?.store?.assignees || []), - ...(SidebarMediator.singleton?.store?.reviewers || []), - ]; - const attentionRequested = command === MEMBER_COMMAND.REMOVE_ATTENTION; - - return data.filter((member) => - attentionUsers.find( - (u) => - createMemberSearchString(u).includes(member.search) && - u.attention_requested === attentionRequested, - ), - ); } return data; diff --git a/app/assets/javascripts/main.js b/app/assets/javascripts/main.js index 349a28ace52..c16ed68096d 100644 --- a/app/assets/javascripts/main.js +++ b/app/assets/javascripts/main.js @@ -134,12 +134,6 @@ function deferredInitialisation() { // Adding a helper class to activate animations only after all is rendered setTimeout(() => $body.addClass('page-initialised'), 1000); - - if (window.gon?.features?.mrAttentionRequests) { - import('~/attention_requests') - .then((module) => module.default()) - .catch(() => {}); - } } // header search vue component bootstrap diff --git a/app/assets/javascripts/sidebar/components/assignees/assignees.vue b/app/assets/javascripts/sidebar/components/assignees/assignees.vue index 3602b5ec4f6..29ea390a81d 100644 --- a/app/assets/javascripts/sidebar/components/assignees/assignees.vue +++ b/app/assets/javascripts/sidebar/components/assignees/assignees.vue @@ -39,9 +39,6 @@ export default { assignSelf() { this.$emit('assign-self'); }, - toggleAttentionRequested(data) { - this.$emit('toggle-attention-requested', data); - }, }, }; @@ -66,12 +63,7 @@ export default { - + diff --git a/app/assets/javascripts/sidebar/components/assignees/issuable_assignees.vue b/app/assets/javascripts/sidebar/components/assignees/issuable_assignees.vue index 59a4eb54bbe..a94dd128a1a 100644 --- a/app/assets/javascripts/sidebar/components/assignees/issuable_assignees.vue +++ b/app/assets/javascripts/sidebar/components/assignees/issuable_assignees.vue @@ -32,11 +32,6 @@ export default { return this.users.length === 0; }, }, - methods: { - toggleAttentionRequested(data) { - this.$emit('toggle-attention-requested', data); - }, - }, }; @@ -66,7 +61,6 @@ export default { :users="users" :issuable-type="issuableType" class="gl-text-gray-800 hide-collapsed" - @toggle-attention-requested="toggleAttentionRequested" /> diff --git a/app/assets/javascripts/sidebar/components/assignees/sidebar_assignees.vue b/app/assets/javascripts/sidebar/components/assignees/sidebar_assignees.vue index e596d6292bf..18b26c7d8bd 100644 --- a/app/assets/javascripts/sidebar/components/assignees/sidebar_assignees.vue +++ b/app/assets/javascripts/sidebar/components/assignees/sidebar_assignees.vue @@ -125,9 +125,6 @@ export default { availability: this.assigneeAvailabilityStatus[username] || '', })); }, - toggleAttentionRequested(data) { - this.mediator.toggleAttentionRequested('assignee', data); - }, }, }; @@ -155,7 +152,6 @@ export default { :editable="store.editable" :issuable-type="issuableType" @assign-self="assignSelf" - @toggle-attention-requested="toggleAttentionRequested" /> diff --git a/app/assets/javascripts/sidebar/components/assignees/uncollapsed_assignee_list.vue b/app/assets/javascripts/sidebar/components/assignees/uncollapsed_assignee_list.vue index b6260418837..0e4d4c74160 100644 --- a/app/assets/javascripts/sidebar/components/assignees/uncollapsed_assignee_list.vue +++ b/app/assets/javascripts/sidebar/components/assignees/uncollapsed_assignee_list.vue @@ -2,7 +2,6 @@ import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import { IssuableType } from '~/issues/constants'; import { __, sprintf } from '~/locale'; -import AttentionRequestedToggle from '../attention_requested_toggle.vue'; import AssigneeAvatarLink from './assignee_avatar_link.vue'; import UserNameWithStatus from './user_name_with_status.vue'; @@ -10,7 +9,6 @@ const DEFAULT_RENDER_COUNT = 5; export default { components: { - AttentionRequestedToggle, AssigneeAvatarLink, UserNameWithStatus, }, @@ -46,10 +44,6 @@ export default { return this.users.length - DEFAULT_RENDER_COUNT; }, uncollapsedUsers() { - if (this.showVerticalList) { - return this.users; - } - const uncollapsedLength = this.showLess ? Math.min(this.users.length, DEFAULT_RENDER_COUNT) : this.users.length; @@ -58,9 +52,6 @@ export default { username() { return `@${this.firstUser.username}`; }, - showVerticalList() { - return this.glFeatures.mrAttentionRequests && this.isMergeRequest; - }, isMergeRequest() { return this.issuableType === IssuableType.MergeRequest; }, @@ -75,9 +66,6 @@ export default { } return u?.status?.availability || ''; }, - toggleAttentionRequested(data) { - this.$emit('toggle-attention-requested', data); - }, }, }; @@ -96,7 +84,7 @@ export default { @@ -107,14 +95,6 @@ export default { -
diff --git a/app/assets/javascripts/sidebar/components/attention_requested_toggle.vue b/app/assets/javascripts/sidebar/components/attention_requested_toggle.vue deleted file mode 100644 index 974ad189f32..00000000000 --- a/app/assets/javascripts/sidebar/components/attention_requested_toggle.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - diff --git a/app/assets/javascripts/sidebar/components/reviewers/reviewers.vue b/app/assets/javascripts/sidebar/components/reviewers/reviewers.vue index b07fd944ff9..5729b958b5d 100644 --- a/app/assets/javascripts/sidebar/components/reviewers/reviewers.vue +++ b/app/assets/javascripts/sidebar/components/reviewers/reviewers.vue @@ -49,9 +49,6 @@ export default { requestReview(data) { this.$emit('request-review', data); }, - toggleAttentionRequested(data) { - this.$emit('toggle-attention-requested', data); - }, }, }; @@ -73,7 +70,6 @@ export default { :root-path="rootPath" :issuable-type="issuableType" @request-review="requestReview" - @toggle-attention-requested="toggleAttentionRequested" />
diff --git a/app/assets/javascripts/sidebar/components/reviewers/sidebar_reviewers.vue b/app/assets/javascripts/sidebar/components/reviewers/sidebar_reviewers.vue index 2ea63219e92..e414aaf719b 100644 --- a/app/assets/javascripts/sidebar/components/reviewers/sidebar_reviewers.vue +++ b/app/assets/javascripts/sidebar/components/reviewers/sidebar_reviewers.vue @@ -88,9 +88,6 @@ export default { requestReview(data) { this.mediator.requestReview(data); }, - toggleAttentionRequested(data) { - this.mediator.toggleAttentionRequested('reviewer', data); - }, }, }; @@ -109,7 +106,6 @@ export default { :editable="store.editable" :issuable-type="issuableType" @request-review="requestReview" - @toggle-attention-requested="toggleAttentionRequested" /> diff --git a/app/assets/javascripts/sidebar/components/reviewers/uncollapsed_reviewer_list.vue b/app/assets/javascripts/sidebar/components/reviewers/uncollapsed_reviewer_list.vue index 2f58e11c00f..3aeb49eb422 100644 --- a/app/assets/javascripts/sidebar/components/reviewers/uncollapsed_reviewer_list.vue +++ b/app/assets/javascripts/sidebar/components/reviewers/uncollapsed_reviewer_list.vue @@ -1,8 +1,6 @@