From ee52c3666e4e2d2ad208fd95b15e2c9950ce6a23 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 16 Feb 2022 21:12:25 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .../issuable/bulk_update_sidebar/index.js | 1 + app/assets/javascripts/issuable/index.js | 2 + app/assets/javascripts/issues/list/index.js | 2 + app/assets/javascripts/issues/new/index.js | 2 + .../issues/show/components/description.vue | 7 +- app/assets/javascripts/issues/show/index.js | 1 + app/assets/javascripts/labels/index.js | 2 + app/assets/javascripts/milestones/index.js | 2 + .../pipelines_list/pipeline_url.vue | 25 +-- .../sidebar/mount_milestone_sidebar.js | 1 + .../vue_shared/alert_details/index.js | 1 + app/finders/ci/runners_finder.rb | 2 +- app/graphql/types/ci/runner_sort_enum.rb | 2 + app/graphql/types/ci/runner_type.rb | 3 + .../types/root_storage_statistics_type.rb | 1 + app/presenters/README.md | 8 +- .../alert_management/alert_presenter.rb | 2 +- app/presenters/ci/pipeline_presenter.rb | 2 +- app/presenters/project_presenter.rb | 2 +- .../development/grape_gitlab_json.yml | 8 - ...ve_ff_push_rules_supersede_code_owners.yml | 16 ++ ...211119111006_create_job_artifact_states.rb | 32 ++++ db/schema_migrations/20211119111006 | 1 + db/structure.sql | 39 ++++ .../geo/replication/datatypes.md | 2 +- .../monitoring/prometheus/gitlab_metrics.md | 10 + .../monitoring/prometheus/index.md | 4 +- doc/administration/pages/index.md | 6 +- doc/api/geo_nodes.md | 39 ++++ doc/api/graphql/reference/index.md | 60 ++++++ doc/update/deprecations.md | 12 ++ doc/user/application_security/index.md | 14 +- .../policies/scan-execution-policies.md | 2 +- doc/user/project/settings/index.md | 2 +- .../migrate_job_artifact_registry_to_ssf.rb | 13 ++ lib/gitlab/database/gitlab_schemas.yml | 1 + lib/gitlab/json.rb | 9 +- package.json | 2 +- qa/qa/resource/group_milestone.rb | 2 +- spec/factories/ci/runners.rb | 5 + .../user_sees_merge_request_pipelines_spec.rb | 22 +-- .../merge_request/user_sees_pipelines_spec.rb | 6 +- .../projects/pipelines/pipelines_spec.rb | 2 +- spec/finders/ci/runners_finder_spec.rb | 20 +- .../show/components/description_spec.js | 104 +++++++---- spec/frontend/pipelines/mock_data.js | 175 +++++++++++++++++- spec/frontend/pipelines/pipeline_url_spec.js | 37 +++- spec/graphql/types/ci/runner_type_spec.rb | 2 +- .../root_storage_statistics_type_spec.rb | 2 +- spec/lib/gitlab/json_spec.rb | 32 +--- yarn.lock | 8 +- 51 files changed, 603 insertions(+), 154 deletions(-) delete mode 100644 config/feature_flags/development/grape_gitlab_json.yml create mode 100644 data/deprecations/14-8-remove_ff_push_rules_supersede_code_owners.yml create mode 100644 db/migrate/20211119111006_create_job_artifact_states.rb create mode 100644 db/schema_migrations/20211119111006 create mode 100644 lib/gitlab/background_migration/migrate_job_artifact_registry_to_ssf.rb diff --git a/app/assets/javascripts/issuable/bulk_update_sidebar/index.js b/app/assets/javascripts/issuable/bulk_update_sidebar/index.js index dca606556d0..967996b859e 100644 --- a/app/assets/javascripts/issuable/bulk_update_sidebar/index.js +++ b/app/assets/javascripts/issuable/bulk_update_sidebar/index.js @@ -23,6 +23,7 @@ export function initIssueStatusSelect() { return new Vue({ el, + name: 'StatusSelectRoot', render: (createElement) => createElement(StatusSelect), }); } diff --git a/app/assets/javascripts/issuable/index.js b/app/assets/javascripts/issuable/index.js index 00b027523e2..10dbefce503 100644 --- a/app/assets/javascripts/issuable/index.js +++ b/app/assets/javascripts/issuable/index.js @@ -32,6 +32,7 @@ export function initCsvImportExportButtons() { return new Vue({ el, + name: 'CsvImportExportButtonsRoot', provide: { showExportButton: parseBoolean(showExportButton), showImportButton: parseBoolean(showImportButton), @@ -74,6 +75,7 @@ export function initIssuableByEmail() { return new Vue({ el, + name: 'IssuableByEmailRoot', provide: { initialEmail, issuableType, diff --git a/app/assets/javascripts/issues/list/index.js b/app/assets/javascripts/issues/list/index.js index bc9a864c63f..3b2d37eab74 100644 --- a/app/assets/javascripts/issues/list/index.js +++ b/app/assets/javascripts/issues/list/index.js @@ -30,6 +30,7 @@ export function mountJiraIssuesListApp() { return new Vue({ el, + name: 'JiraIssuesImportStatusRoot', apolloProvider, render(createComponent) { return createComponent(JiraIssuesImportStatusRoot, { @@ -119,6 +120,7 @@ export function mountIssuesListApp() { return new Vue({ el, + name: 'IssuesListRoot', apolloProvider, provide: { autocompleteAwardEmojisPath, diff --git a/app/assets/javascripts/issues/new/index.js b/app/assets/javascripts/issues/new/index.js index f96cacf2595..91599502996 100644 --- a/app/assets/javascripts/issues/new/index.js +++ b/app/assets/javascripts/issues/new/index.js @@ -20,6 +20,7 @@ export function initTitleSuggestions() { return new Vue({ el, + name: 'TitleSuggestionsRoot', apolloProvider, data() { return { @@ -51,6 +52,7 @@ export function initTypePopover() { return new Vue({ el, + name: 'TypePopoverRoot', render: (createElement) => createElement(TypePopover), }); } diff --git a/app/assets/javascripts/issues/show/components/description.vue b/app/assets/javascripts/issues/show/components/description.vue index bcbcb04132b..eeccf886b65 100644 --- a/app/assets/javascripts/issues/show/components/description.vue +++ b/app/assets/javascripts/issues/show/components/description.vue @@ -95,7 +95,7 @@ export default { this.renderGFM(); this.updateTaskStatusText(); - if (this.workItemsEnabled && this.$el) { + if (this.workItemsEnabled) { this.renderTaskActions(); } }, @@ -157,7 +157,12 @@ export default { } }, renderTaskActions() { + if (!this.$el?.querySelectorAll) { + return; + } + const taskListFields = this.$el.querySelectorAll('.task-list-item'); + taskListFields.forEach((item, index) => { const button = document.createElement('button'); button.classList.add( diff --git a/app/assets/javascripts/issues/show/index.js b/app/assets/javascripts/issues/show/index.js index 732bdc09aea..f5c71f9691f 100644 --- a/app/assets/javascripts/issues/show/index.js +++ b/app/assets/javascripts/issues/show/index.js @@ -160,6 +160,7 @@ export function initSentryErrorStackTrace() { return new Vue({ el, + name: 'SentryErrorStackTraceRoot', store: errorTrackingStore, render: (createElement) => createElement(SentryErrorStackTrace, { props: { issueStackTracePath } }), diff --git a/app/assets/javascripts/labels/index.js b/app/assets/javascripts/labels/index.js index e87ad8d9a06..0d4113bba4c 100644 --- a/app/assets/javascripts/labels/index.js +++ b/app/assets/javascripts/labels/index.js @@ -11,6 +11,7 @@ import ProjectLabelSubscription from './project_label_subscription'; export function initDeleteLabelModal(optionalProps = {}) { new Vue({ + name: 'DeleteLabelModalRoot', render(h) { return h(DeleteLabelModal, { props: { @@ -65,6 +66,7 @@ export function initLabelIndex() { return new Vue({ el: '#js-promote-label-modal', + name: 'PromoteLabelModal', data() { return { modalProps: { diff --git a/app/assets/javascripts/milestones/index.js b/app/assets/javascripts/milestones/index.js index 2ca5f104b4f..f90fdb04923 100644 --- a/app/assets/javascripts/milestones/index.js +++ b/app/assets/javascripts/milestones/index.js @@ -46,6 +46,7 @@ export function initPromoteMilestoneModal() { return new Vue({ el: promoteMilestoneModal, + name: 'PromoteMilestoneModalRoot', render(createElement) { return createElement(PromoteMilestoneModal); }, @@ -80,6 +81,7 @@ export function initDeleteMilestoneModal() { return new Vue({ el: '#js-delete-milestone-modal', + name: 'DeleteMilestoneModalRoot', data() { return { modalProps: { diff --git a/app/assets/javascripts/pipelines/components/pipelines_list/pipeline_url.vue b/app/assets/javascripts/pipelines/components/pipelines_list/pipeline_url.vue index 7c78abae77f..52da4d01468 100644 --- a/app/assets/javascripts/pipelines/components/pipelines_list/pipeline_url.vue +++ b/app/assets/javascripts/pipelines/components/pipelines_list/pipeline_url.vue @@ -136,8 +136,8 @@ export default { return __('Branch'); } }, - commitTitle() { - return this.pipeline?.commit?.title; + commitTitleText() { + return this.pipeline?.commit?.title || __("Can't find HEAD commit for this branch"); }, hasAuthor() { return ( @@ -159,27 +159,22 @@ export default {