From e2c044cf3f155cea010553ee5fe50145b7e9278d Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 11 Jan 2023 03:07:33 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .../ci/package-and-test/main.gitlab-ci.yml | 2 +- .rubocop_todo/database/multiple_databases.yml | 1 - .../boards/components/board_card_inner.vue | 7 +- .../boards/components/board_content.vue | 7 +- .../components/board_content_sidebar.vue | 13 +- .../boards/components/board_form.vue | 9 +- .../boards/components/board_new_issue.vue | 4 +- .../boards/components/boards_selector.vue | 4 +- .../issue_board_filtered_search.vue | 13 +- app/assets/javascripts/boards/index.js | 12 +- .../javascripts/boards/issue_board_filters.js | 7 +- .../javascripts/boards/stores/getters.js | 4 +- .../components/work_item_detail_modal.vue | 2 +- app/assets/stylesheets/utilities.scss | 4 + .../google_cloud/deployments_controller.rb | 7 + .../json_schemas/cyclonedx_report.json | 1075 ++++++- doc/api/graphql/reference/index.md | 3 +- qa/qa/fixtures/mocks/import/github.yml | 2743 +++++++++++++++++ qa/qa/resource/group_runner.rb | 29 + qa/qa/resource/project.rb | 40 +- qa/qa/resource/project_runner.rb | 29 + qa/qa/resource/runner.rb | 148 - qa/qa/resource/runner_base.rb | 129 + qa/qa/runtime/path.rb | 4 + qa/qa/service/docker_run/gitlab_runner.rb | 2 + qa/qa/service/docker_run/smocker.rb | 39 +- .../import/import_github_repo_spec.rb | 5 +- .../integrations/webhook_events_spec.rb | 8 +- .../merge_request/push_options_mwps_spec.rb | 2 +- .../api/4_verify/file_variable_spec.rb | 2 +- .../api/4_verify/remove_runner_spec.rb | 33 - .../pipeline_status_emails_spec.rb | 2 +- .../merge_when_pipeline_succeeds_spec.rb | 2 +- .../3_create/pages/new_static_page_spec.rb | 2 +- .../3_create/web_ide/web_terminal_spec.rb | 2 +- .../ci_variable/custom_variable_spec.rb | 2 +- .../pipeline_with_protected_variable_spec.rb | 2 +- .../raw_variables_defined_in_yaml_spec.rb | 2 +- .../create_and_process_pipeline_spec.rb | 2 +- ...lude_multiple_files_from_a_project_spec.rb | 2 +- .../pipeline/locked_artifacts_spec.rb | 2 +- .../merge_mr_when_pipline_is_blocked_spec.rb | 2 +- .../pipeline/mr_event_rule_pipeline_spec.rb | 2 +- ...pipelines_independent_relationship_spec.rb | 2 +- ...variables_to_downstream_via_bridge_spec.rb | 4 +- .../pipeline_with_image_pull_policy_spec.rb | 2 +- .../run_pipeline_with_manual_jobs_spec.rb | 2 +- ...trigger_child_pipeline_with_manual_spec.rb | 2 +- .../4_verify/pipeline/trigger_matrix_spec.rb | 2 +- ...pdate_ci_file_with_pipeline_editor_spec.rb | 2 +- .../4_verify/runner/register_runner_spec.rb | 2 +- .../testing/endpoint_coverage_spec.rb | 2 +- .../testing/view_code_coverage_spec.rb | 2 +- .../container_registry_omnibus_spec.rb | 2 +- .../dependency_proxy/dependency_proxy_spec.rb | 2 +- .../terraform_module_registry_spec.rb | 3 +- .../composer_registry_spec.rb | 2 +- .../package_registry/conan_repository_spec.rb | 2 +- .../generic_repository_spec.rb | 2 +- .../maven/maven_project_level_spec.rb | 6 +- .../npm/npm_instance_level_spec.rb | 4 +- .../npm/npm_project_level_spec.rb | 2 +- .../nuget/nuget_group_level_spec.rb | 4 +- .../nuget/nuget_project_level_spec.rb | 2 +- .../package_registry/pypi_repository_spec.rb | 2 +- .../rubygems_registry_spec.rb | 2 +- .../deploy_key/clone_using_deploy_key_spec.rb | 2 +- .../import/github_import_shared_context.rb | 36 + .../merge_train_spec_with_user_prep.rb | 2 +- .../packages_registry_shared_context.rb | 4 +- .../variable_inheritance_shared_context.rb | 4 +- qa/qa/vendor/smocker/smocker_api.rb | 31 +- qa/spec/spec_helper.rb | 1 + spec/frontend/boards/board_card_inner_spec.js | 18 +- spec/frontend/boards/board_list_helper.js | 4 +- .../boards/components/board_card_spec.js | 5 +- .../components/board_content_sidebar_spec.js | 2 +- .../boards/components/board_content_spec.js | 1 + .../boards/components/board_form_spec.js | 6 +- .../boards/components/board_new_issue_spec.js | 8 +- .../boards/components/board_top_bar_spec.js | 1 + .../boards/components/boards_selector_spec.js | 22 +- .../issue_board_filtered_search_spec.js | 2 +- spec/frontend/boards/stores/getters_spec.js | 36 - .../cyclonedx_schema_validator_spec.rb | 41 + 85 files changed, 4213 insertions(+), 481 deletions(-) create mode 100644 qa/qa/fixtures/mocks/import/github.yml create mode 100644 qa/qa/resource/group_runner.rb create mode 100644 qa/qa/resource/project_runner.rb delete mode 100644 qa/qa/resource/runner.rb create mode 100644 qa/qa/resource/runner_base.rb delete mode 100644 qa/qa/specs/features/api/4_verify/remove_runner_spec.rb diff --git a/.gitlab/ci/package-and-test/main.gitlab-ci.yml b/.gitlab/ci/package-and-test/main.gitlab-ci.yml index 6dd0a92d9c4..14ea310fdf0 100644 --- a/.gitlab/ci/package-and-test/main.gitlab-ci.yml +++ b/.gitlab/ci/package-and-test/main.gitlab-ci.yml @@ -603,7 +603,7 @@ ee:importers: extends: .qa variables: QA_SCENARIO: Test::Integration::Import - QA_MOCK_GITHUB: "false" + QA_MOCK_GITHUB: "true" GITLAB_QA_OPTS: --set-feature-flags bulk_import_projects=enabled rules: - !reference [.rules:test:qa, rules] diff --git a/.rubocop_todo/database/multiple_databases.yml b/.rubocop_todo/database/multiple_databases.yml index be91da8aad4..1e53f102683 100644 --- a/.rubocop_todo/database/multiple_databases.yml +++ b/.rubocop_todo/database/multiple_databases.yml @@ -4,4 +4,3 @@ Database/MultipleDatabases: - 'db/post_migrate/20210317104032_set_iteration_cadence_automatic_to_false.rb' - 'db/post_migrate/20210811122206_update_external_project_bots.rb' - 'db/post_migrate/20210812013042_remove_duplicate_project_authorizations.rb' - - 'ee/spec/services/ee/merge_requests/update_service_spec.rb' diff --git a/app/assets/javascripts/boards/components/board_card_inner.vue b/app/assets/javascripts/boards/components/board_card_inner.vue index 4f919019813..77df111afc1 100644 --- a/app/assets/javascripts/boards/components/board_card_inner.vue +++ b/app/assets/javascripts/boards/components/board_card_inner.vue @@ -8,7 +8,7 @@ import { GlSprintf, } from '@gitlab/ui'; import { sortBy } from 'lodash'; -import { mapActions, mapGetters, mapState } from 'vuex'; +import { mapActions, mapState } from 'vuex'; import boardCardInner from 'ee_else_ce/boards/mixins/board_card_inner'; import { isScopedLabel } from '~/lib/utils/common_utils'; import { updateHistory } from '~/lib/utils/url_utility'; @@ -43,7 +43,7 @@ export default { GlTooltip: GlTooltipDirective, }, mixins: [boardCardInner], - inject: ['rootPath', 'scopedLabelsAvailable', 'isEpicBoard', 'issuableType'], + inject: ['rootPath', 'scopedLabelsAvailable', 'isEpicBoard', 'issuableType', 'isGroupBoard'], props: { item: { type: Object, @@ -78,7 +78,6 @@ export default { }, computed: { ...mapState(['isShowingLabels', 'allowSubEpics']), - ...mapGetters(['isProjectBoard']), cappedAssignees() { // e.g. maxRender is 4, // Render up to all 4 assignees if there are only 4 assigness @@ -158,7 +157,7 @@ export default { return Math.round((this.item.descendantWeightSum.closedIssues / this.totalWeight) * 100); }, showReferencePath() { - return !this.isProjectBoard && this.itemReferencePath; + return this.isGroupBoard && this.itemReferencePath; }, avatarSize() { return { default: 16, lg: 24 }; diff --git a/app/assets/javascripts/boards/components/board_content.vue b/app/assets/javascripts/boards/components/board_content.vue index ca86894ca40..1d585e3407b 100644 --- a/app/assets/javascripts/boards/components/board_content.vue +++ b/app/assets/javascripts/boards/components/board_content.vue @@ -9,7 +9,7 @@ import { s__ } from '~/locale'; import { formatBoardLists } from 'ee_else_ce/boards/boards_util'; import BoardAddNewColumn from 'ee_else_ce/boards/components/board_add_new_column.vue'; import { defaultSortableOptions } from '~/sortable/constants'; -import { DraggableItemTypes, BoardType, listsQuery } from 'ee_else_ce/boards/constants'; +import { DraggableItemTypes, listsQuery } from 'ee_else_ce/boards/constants'; import BoardColumn from './board_column.vue'; export default { @@ -35,6 +35,7 @@ export default { 'issuableType', 'isIssueBoard', 'isEpicBoard', + 'isGroupBoard', 'isApolloBoard', ], props: { @@ -89,8 +90,8 @@ export default { queryVariables() { return { ...(this.isIssueBoard && { - isGroup: this.boardType === BoardType.group, - isProject: this.boardType === BoardType.project, + isGroup: this.isGroupBoard, + isProject: !this.isGroupBoard, }), fullPath: this.fullPath, boardId: this.boardId, diff --git a/app/assets/javascripts/boards/components/board_content_sidebar.vue b/app/assets/javascripts/boards/components/board_content_sidebar.vue index 97b017fea58..e6d1e558c37 100644 --- a/app/assets/javascripts/boards/components/board_content_sidebar.vue +++ b/app/assets/javascripts/boards/components/board_content_sidebar.vue @@ -6,7 +6,7 @@ import SidebarDropdownWidget from 'ee_else_ce/sidebar/components/sidebar_dropdow import { __, sprintf } from '~/locale'; import BoardSidebarTimeTracker from '~/boards/components/sidebar/board_sidebar_time_tracker.vue'; import BoardSidebarTitle from '~/boards/components/sidebar/board_sidebar_title.vue'; -import { ISSUABLE, INCIDENT, issuableTypes } from '~/boards/constants'; +import { BoardType, ISSUABLE, INCIDENT, issuableTypes } from '~/boards/constants'; import { getIdFromGraphQLId } from '~/graphql_shared/utils'; import SidebarAssigneesWidget from '~/sidebar/components/assignees/sidebar_assignees_widget.vue'; import SidebarConfidentialityWidget from '~/sidebar/components/confidential/sidebar_confidentiality_widget.vue'; @@ -68,11 +68,13 @@ export default { issuableType: { default: issuableTypes.issue, }, + isGroupBoard: { + default: false, + }, }, inheritAttrs: false, computed: { ...mapGetters([ - 'isGroupBoard', 'isSidebarOpen', 'activeBoardItem', 'groupPathForActiveIssue', @@ -94,14 +96,17 @@ export default { fullPath() { return this.activeBoardItem?.referencePath?.split('#')[0] || ''; }, + parentType() { + return this.isGroupBoard ? BoardType.group : BoardType.project; + }, createLabelTitle() { return sprintf(__('Create %{workspace} label'), { - workspace: this.isGroupBoard ? 'group' : 'project', + workspace: this.parentType, }); }, manageLabelTitle() { return sprintf(__('Manage %{workspace} labels'), { - workspace: this.isGroupBoard ? 'group' : 'project', + workspace: this.parentType, }); }, attrWorkspacePath() { diff --git a/app/assets/javascripts/boards/components/board_form.vue b/app/assets/javascripts/boards/components/board_form.vue index fcf026bbe00..a71bde54a8f 100644 --- a/app/assets/javascripts/boards/components/board_form.vue +++ b/app/assets/javascripts/boards/components/board_form.vue @@ -1,6 +1,6 @@