From a5519693560d1ac4e120e1afd7d806d13a2d09fd Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Mon, 31 Oct 2022 15:11:37 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .rubocop_todo/style/string_concatenation.yml | 1 - Gemfile | 2 +- Gemfile.checksum | 2 +- Gemfile.lock | 4 +- .../issuable_bulk_update_sidebar.js | 22 +- .../list/components/issues_list_app.vue | 9 +- .../javascripts/issues/list/constants.js | 6 +- .../javascripts/lib/utils/common_utils.js | 60 - .../sidebar/components/sidebar_dropdown.vue | 240 ++++ .../components/sidebar_dropdown_widget.vue | 185 +-- .../epics_select/epics_select_bundle.js | 1 - .../health_status_bundle.js | 1 - .../sidebar/iterations_dropdown_bundle.js | 1 - config/open_api.yml | 2 + doc/ci/yaml/index.md | 2 + .../project/integrations/webhook_events.md | 7 +- jest.config.base.js | 2 +- lib/api/api.rb | 2 +- lib/api/features.rb | 35 +- .../ci/parsers/coverage/sax_document.rb | 7 +- .../security/validators/schema_validator.rb | 16 +- .../cluster-image-scanning-report-format.json | 984 +++++++++++++ .../container-scanning-report-format.json | 916 ++++++++++++ .../coverage-fuzzing-report-format.json | 874 +++++++++++ .../schemas/15.0.4/dast-report-format.json | 1279 +++++++++++++++++ .../dependency-scanning-report-format.json | 982 +++++++++++++ .../schemas/15.0.4/sast-report-format.json | 869 +++++++++++ .../secret-detection-report-format.json | 893 ++++++++++++ lib/gitlab/data_builder/pipeline.rb | 5 + lib/gitlab/hook_data/merge_request_builder.rb | 9 +- locale/gitlab.pot | 18 - package.json | 1 - .../internal_references_spec.rb | 18 +- .../issues/user_sees_empty_state_spec.rb | 4 +- .../import_export/import_file_spec.rb | 2 - spec/frontend/__helpers__/raw_transformer.js | 6 + .../list/components/issues_list_app_spec.js | 5 +- spec/frontend/lib/utils/common_utils_spec.js | 39 - .../components/sidebar_dropdown_spec.js | 285 ++++ .../sidebar_dropdown_widget_spec.js | 202 +-- .../filter/repository_link_filter_spec.rb | 1 - .../ci/parsers/coverage/sax_document_spec.rb | 31 + spec/lib/gitlab/data_builder/pipeline_spec.rb | 1 + .../hook_data/merge_request_builder_spec.rb | 1 + .../design_repo_restorer_spec.rb | 2 - .../import_export/repo_restorer_spec.rb | 2 - .../snippets_repo_restorer_spec.rb | 2 - spec/models/repository_spec.rb | 1 - spec/services/git/base_hooks_service_spec.rb | 1 - spec/services/git/tag_push_service_spec.rb | 1 - .../merge_requests/squash_service_spec.rb | 9 +- .../merge_requests/update_service_spec.rb | 2 +- .../migrate_repository_service_spec.rb | 2 - spec/spec_helper.rb | 1 - spec/support/helpers/git_helpers.rb | 11 - .../projects/after_import_worker_spec.rb | 2 - yarn.lock | 5 - 57 files changed, 7497 insertions(+), 576 deletions(-) create mode 100644 app/assets/javascripts/sidebar/components/sidebar_dropdown.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/epics_select/epics_select_bundle.js delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/health_status_select/health_status_bundle.js delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/iterations_dropdown_bundle.js create mode 100644 lib/gitlab/ci/parsers/security/validators/schemas/15.0.4/cluster-image-scanning-report-format.json create mode 100644 lib/gitlab/ci/parsers/security/validators/schemas/15.0.4/container-scanning-report-format.json create mode 100644 lib/gitlab/ci/parsers/security/validators/schemas/15.0.4/coverage-fuzzing-report-format.json create mode 100644 lib/gitlab/ci/parsers/security/validators/schemas/15.0.4/dast-report-format.json create mode 100644 lib/gitlab/ci/parsers/security/validators/schemas/15.0.4/dependency-scanning-report-format.json create mode 100644 lib/gitlab/ci/parsers/security/validators/schemas/15.0.4/sast-report-format.json create mode 100644 lib/gitlab/ci/parsers/security/validators/schemas/15.0.4/secret-detection-report-format.json create mode 100644 spec/frontend/__helpers__/raw_transformer.js create mode 100644 spec/frontend/sidebar/components/sidebar_dropdown_spec.js delete mode 100644 spec/support/helpers/git_helpers.rb diff --git a/.rubocop_todo/style/string_concatenation.yml b/.rubocop_todo/style/string_concatenation.yml index ec15edbc206..6490143b4b9 100644 --- a/.rubocop_todo/style/string_concatenation.yml +++ b/.rubocop_todo/style/string_concatenation.yml @@ -316,7 +316,6 @@ Style/StringConcatenation: - 'spec/services/verify_pages_domain_service_spec.rb' - 'spec/support/capybara.rb' - 'spec/support/helpers/ci_artifact_metadata_generator.rb' - - 'spec/support/helpers/git_helpers.rb' - 'spec/support/helpers/gitaly_setup.rb' - 'spec/support/helpers/javascript_fixtures_helpers.rb' - 'spec/support/helpers/kubernetes_helpers.rb' diff --git a/Gemfile b/Gemfile index 61a02882c34..9053b3b9e9d 100644 --- a/Gemfile +++ b/Gemfile @@ -338,7 +338,7 @@ gem 'pg_query', '~> 2.1.4' gem 'premailer-rails', '~> 1.10.3' # LabKit: Tracing and Correlation -gem 'gitlab-labkit', '~> 0.27.0' +gem 'gitlab-labkit', '~> 0.28.0' gem 'thrift', '>= 0.16.0' # I18n diff --git a/Gemfile.checksum b/Gemfile.checksum index c693260714d..ceb0e7807e2 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -205,7 +205,7 @@ {"name":"gitlab-dangerfiles","version":"3.6.1","platform":"ruby","checksum":"f7b69b093d52acb89095d411cb7b8849f5f3b9e76f8baa4c99b5671f1564865f"}, {"name":"gitlab-experiment","version":"0.7.1","platform":"ruby","checksum":"166dddb3aa83428bcaa93c35684ed01dc4d61f321fd2ae40b020806dc54a7824"}, {"name":"gitlab-fog-azure-rm","version":"1.3.0","platform":"ruby","checksum":"2fef5317d6515f95f803099afa860fe3019ce6e1907bf49f66b5e06468a617b5"}, -{"name":"gitlab-labkit","version":"0.27.0","platform":"ruby","checksum":"3f30877bc7c07dedc17f1061324c2e123f25c1576d9a892edb85678c9782c75a"}, +{"name":"gitlab-labkit","version":"0.28.0","platform":"ruby","checksum":"a7ebf52336566f7607d280056acd64f390c9991f152fc3d6b1dd966a372d5654"}, {"name":"gitlab-license","version":"2.2.1","platform":"ruby","checksum":"39fcf6be8b2887df8afe01b5dcbae8d08b7c5d937ff56b0fb40484a8c4f02d30"}, {"name":"gitlab-mail_room","version":"0.0.9","platform":"ruby","checksum":"6700374b5c0aa9d9ad4e711aeb677f0b7d415a6d01d3baa699efab25349d851c"}, {"name":"gitlab-markup","version":"1.8.1","platform":"ruby","checksum":"ab1f9fd016977497c2af25b76341dea670533014f406861834a0bd99f646707b"}, diff --git a/Gemfile.lock b/Gemfile.lock index 1978a1aa352..6589ab6e810 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -569,7 +569,7 @@ GEM fog-json (~> 1.2.0) mime-types ms_rest_azure (~> 0.12.0) - gitlab-labkit (0.27.0) + gitlab-labkit (0.28.0) actionpack (>= 5.0.0, < 8.0.0) activesupport (>= 5.0.0, < 8.0.0) grpc (>= 1.37) @@ -1631,7 +1631,7 @@ DEPENDENCIES gitlab-dangerfiles (~> 3.6.1) gitlab-experiment (~> 0.7.1) gitlab-fog-azure-rm (~> 1.3.0) - gitlab-labkit (~> 0.27.0) + gitlab-labkit (~> 0.28.0) gitlab-license (~> 2.2.1) gitlab-mail_room (~> 0.0.9) gitlab-markup (~> 1.8.0) diff --git a/app/assets/javascripts/issuable/bulk_update_sidebar/issuable_bulk_update_sidebar.js b/app/assets/javascripts/issuable/bulk_update_sidebar/issuable_bulk_update_sidebar.js index be61831fc4d..f8a7dcd965a 100644 --- a/app/assets/javascripts/issuable/bulk_update_sidebar/issuable_bulk_update_sidebar.js +++ b/app/assets/javascripts/issuable/bulk_update_sidebar/issuable_bulk_update_sidebar.js @@ -61,25 +61,13 @@ export default class IssuableBulkUpdateSidebar { // the import/no-unresolved lint rule when FOSS_ONLY=1, even though at // runtime this block won't execute. if (IS_EE) { - import('ee_else_ce/vue_shared/components/sidebar/health_status_select/health_status_bundle') - .then(({ default: HealthStatusSelect }) => { - HealthStatusSelect(); + import('ee_else_ce/sidebar/mount_sidebar') + .then(({ mountEpicDropdown, mountHealthStatusDropdown, mountIterationDropdown }) => { + mountEpicDropdown(); + mountHealthStatusDropdown(); + mountIterationDropdown(); }) .catch(() => {}); - - import('ee_else_ce/vue_shared/components/sidebar/epics_select/epics_select_bundle') - .then(({ default: EpicSelect }) => { - EpicSelect(); - }) - .catch(() => {}); - - import('ee_else_ce/vue_shared/components/sidebar/iterations_dropdown_bundle') - .then(({ default: iterationsDropdown }) => { - iterationsDropdown(); - }) - .catch((e) => { - throw e; - }); } } diff --git a/app/assets/javascripts/issues/list/components/issues_list_app.vue b/app/assets/javascripts/issues/list/components/issues_list_app.vue index 09097e2d5ab..7214a5f31cf 100644 --- a/app/assets/javascripts/issues/list/components/issues_list_app.vue +++ b/app/assets/javascripts/issues/list/components/issues_list_app.vue @@ -947,12 +947,17 @@ export default { + > + + diff --git a/app/assets/javascripts/issues/list/constants.js b/app/assets/javascripts/issues/list/constants.js index 9fe8899ab39..d2325d03837 100644 --- a/app/assets/javascripts/issues/list/constants.js +++ b/app/assets/javascripts/issues/list/constants.js @@ -46,10 +46,8 @@ export const i18n = { noIssuesSignedInDescription: __('Learn more about issues.'), noIssuesSignedInTitle: __('Use issues to collaborate on ideas, solve problems, and plan work'), noIssuesSignedOutButtonText: __('Register / Sign In'), - noIssuesSignedOutDescription: __( - 'The Issue Tracker is the place to add things that need to be improved or solved in a project. You can register or sign in to create issues for this project.', - ), - noIssuesSignedOutTitle: __('There are no issues to show'), + noIssuesSignedOutDescription: __('Learn more about issues.'), + noIssuesSignedOutTitle: __('Use issues to collaborate on ideas, solve problems, and plan work'), noSearchResultsDescription: __('To widen your search, change or remove filters above'), noSearchResultsTitle: __('Sorry, your filter produced no results'), relatedMergeRequests: __('Related merge requests'), diff --git a/app/assets/javascripts/lib/utils/common_utils.js b/app/assets/javascripts/lib/utils/common_utils.js index 4448a106bb6..beced4f9144 100644 --- a/app/assets/javascripts/lib/utils/common_utils.js +++ b/app/assets/javascripts/lib/utils/common_utils.js @@ -633,66 +633,6 @@ export const NavigationType = { TYPE_RESERVED: 255, }; -/** - * Method to perform case-insensitive search for a string - * within multiple properties and return object containing - * properties in case there are multiple matches or `null` - * if there's no match. - * - * Eg; Suppose we want to allow user to search using for a string - * within `iid`, `title`, `url` or `reference` props of a target object; - * - * const objectToSearch = { - * "iid": 1, - * "title": "Error omnis quos consequatur ullam a vitae sed omnis libero cupiditate. &3", - * "url": "/groups/gitlab-org/-/epics/1", - * "reference": "&1", - * }; - * - * Following is how we call searchBy and the return values it will yield; - * - * - `searchBy('omnis', objectToSearch);`: This will return `{ title: ... }` as our - * query was found within title prop we only return that. - * - `searchBy('1', objectToSearch);`: This will return `{ "iid": ..., "reference": ..., "url": ... }`. - * - `searchBy('https://gitlab.com/groups/gitlab-org/-/epics/1', objectToSearch);`: - * This will return `{ "url": ... }`. - * - `searchBy('foo', objectToSearch);`: This will return `null` as no property value - * matched with our query. - * - * You can learn more about behaviour of this method by referring to tests - * within `spec/frontend/lib/utils/common_utils_spec.js`. - * - * @param {string} query String to search for - * @param {object} searchSpace Object containing properties to search in for `query` - */ -export const searchBy = (query = '', searchSpace = {}) => { - const targetKeys = searchSpace !== null ? Object.keys(searchSpace) : []; - - if (!query || !targetKeys.length) { - return null; - } - - const normalizedQuery = query.toLowerCase(); - const matches = targetKeys - .filter((item) => { - const searchItem = `${searchSpace[item]}`.toLowerCase(); - - return ( - searchItem.indexOf(normalizedQuery) > -1 || - normalizedQuery.indexOf(searchItem) > -1 || - normalizedQuery === searchItem - ); - }) - .reduce((acc, prop) => { - const match = acc; - match[prop] = searchSpace[prop]; - - return acc; - }, {}); - - return Object.keys(matches).length ? matches : null; -}; - /** * Checks if the given Label has a special syntax `::` in * it's title. diff --git a/app/assets/javascripts/sidebar/components/sidebar_dropdown.vue b/app/assets/javascripts/sidebar/components/sidebar_dropdown.vue new file mode 100644 index 00000000000..60180d6d44a --- /dev/null +++ b/app/assets/javascripts/sidebar/components/sidebar_dropdown.vue @@ -0,0 +1,240 @@ + + + diff --git a/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue b/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue index 7f0def725a2..a685929cdea 100644 --- a/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue +++ b/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue @@ -1,17 +1,5 @@