From c5cd0c605e7315ccb2490f39e566660bbabbadc2 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 10 May 2024 15:15:58 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/ci/rules.gitlab-ci.yml | 6 +- .rubocop_todo/layout/argument_alignment.yml | 16 -- .../lint/or_assignment_to_constant.yml | 6 - .../lint/redundant_string_coercion.yml | 6 - .../migration/ensure_factory_for_table.yml | 1 + .rubocop_todo/rspec/env_mocking.yml | 7 - .../components/wrappers/code_block.vue | 2 +- .../extensions/code_suggestion.js | 2 +- .../content_editor/extensions/diagram.js | 2 +- app/assets/javascripts/deploy_keys/index.js | 3 + .../edit/components/jira_issues_fields.vue | 66 +----- .../javascripts/issues/list/constants.js | 11 + .../components/merge_requests_list_app.vue | 13 +- .../queries/get_merge_requests.query.graphql | 2 + .../protected_tags/protected_tag_create.js | 9 +- .../protected_tags/protected_tag_edit_list.js | 17 +- .../components/related_issuable_input.vue | 1 - .../security_configuration/constants.js | 3 + .../settings/integrations_controller.rb | 3 - .../import/source_users_controller.rb | 66 ++++++ .../settings/integrations_controller.rb | 3 - .../settings/repository_controller.rb | 3 +- .../integrations/exclusions/create.rb | 45 ++++ .../integrations/exclusions/delete.rb | 45 ++++ .../integrations/exclusions_resolver.rb | 23 ++ .../types/integrations/exclusion_type.rb | 14 ++ .../integrations/integration_type_enum.rb | 12 ++ app/graphql/types/mutation_type.rb | 2 + app/graphql/types/query_type.rb | 5 + .../work_items/widgets/hierarchy_type.rb | 2 +- .../widgets/hierarchy_update_input_type.rb | 28 +-- .../widgets/labels_update_input_type.rb | 12 +- .../widgets/milestone_input_type.rb | 8 +- .../work_items/widgets/milestone_type.rb | 6 +- .../start_and_due_date_update_input_type.rb | 8 +- app/graphql/types/x509_certificate_type.rb | 18 +- app/graphql/types/x509_issuer_type.rb | 10 +- app/mailers/previews/devise_mailer_preview.rb | 7 + app/models/application_setting.rb | 2 + app/models/ci/build.rb | 7 + app/models/ci/build_execution_config.rb | 31 +++ app/models/ci/pipeline.rb | 1 + .../concerns/ci/partitionable/testing.rb | 1 + .../concerns/import/has_import_source.rb | 4 +- app/models/email.rb | 2 + app/models/group.rb | 10 - app/models/import/source_user.rb | 16 ++ app/models/integrations/jira.rb | 38 +--- app/models/work_items/parent_link.rb | 2 +- app/policies/project_policy.rb | 1 + app/services/lfs/lock_file_service.rb | 2 +- .../markdown_content_rewriter_service.rb | 4 +- app/services/members/base_service.rb | 2 +- .../experiment_repository.rb | 4 +- app/services/post_receive_service.rb | 2 +- app/services/preview_markdown_service.rb | 12 +- .../protected_branches/api_service.rb | 2 +- .../legacy_api_create_service.rb | 2 +- app/validators/json_schemas/run_steps.json | 52 +++++ ...firmation_instructions_secondary.html.haml | 2 + ...nfirmation_instructions_secondary.text.erb | 2 + .../settings/repository/show.html.haml | 31 +-- app/workers/all_queues.yml | 9 + ...d_secondary_emails_deletion_cron_worker.rb | 29 +++ .../jira_multiple_project_keys.yml | 9 - config/gitlab_loose_foreign_keys.yml | 4 + config/initializers/1_settings.rb | 3 + config/initializers/postgres_partitioning.rb | 1 + config/routes/import.rb | 7 + db/docs/p_ci_builds_execution_configs.yml | 12 ++ ...064716_create_ci_build_execution_config.rb | 17 ++ ...tions_for_p_ci_builds_execution_configs.rb | 31 +++ ..._add_execution_config_id_to_p_ci_builds.rb | 15 ++ ...n_created_at_where_confirmed_at_is_null.rb | 17 ++ ...ndex_to_execution_config_id_in_ci_build.rb | 25 +++ ...eline_to_ci_builds_to_execution_configs.rb | 25 +++ db/schema_migrations/20240423064716 | 1 + db/schema_migrations/20240423102625 | 1 + db/schema_migrations/20240425091407 | 1 + db/schema_migrations/20240426135340 | 1 + db/schema_migrations/20240501103038 | 1 + db/schema_migrations/20240502062514 | 1 + db/structure.sql | 34 +++ doc/administration/auth/oidc.md | 74 ++++++- .../postgresql/multiple_databases.md | 27 +++ doc/api/graphql/reference/index.md | 107 +++++++++ doc/ci/components/index.md | 66 +++--- doc/development/pipelines/index.md | 8 +- .../advanced_search_migration_styleguide.md | 24 +++ .../advanced_search/elasticsearch.md | 8 + doc/integration/azure.md | 203 +----------------- doc/subscriptions/subscription-add-ons.md | 16 +- doc/user/okrs.md | 1 + doc/user/packages/generic_packages/index.md | 9 + doc/user/profile/index.md | 4 + doc/user/profile/service_accounts.md | 14 +- doc/user/project/issues/related_issues.md | 2 + doc/user/tasks.md | 1 + lib/bulk_imports/ndjson_pipeline.rb | 3 +- lib/gitlab/email/handler/base_handler.rb | 2 +- .../import_export/base/relation_factory.rb | 9 +- locale/gitlab.pot | 21 +- qa/qa/page/project/settings/services/jira.rb | 6 +- .../product_analytics/browser_sdk_app.rb | 2 +- .../product_analytics/dotnet_sdk_app.rb | 61 ++++++ spec/db/schema_spec.rb | 5 +- spec/factories/ci/builds_execution_configs.rb | 46 ++++ spec/factories/import_source_users.rb | 4 + .../code_block_bubble_menu_spec.js | 10 +- .../extensions/code_block_highlight_spec.js | 43 ++-- .../extensions/code_suggestion_spec.js | 25 +++ .../content_editor/extensions/diagram_spec.js | 42 ++++ .../components/jira_issues_fields_spec.js | 137 +++--------- .../merge_requests_list_app_spec.js | 6 +- spec/graphql/types/query_type_spec.rb | 10 + spec/initializers/net_http_patch_spec.rb | 4 +- spec/lib/bulk_imports/ndjson_pipeline_spec.rb | 3 +- spec/lib/gitlab/database/reflection_spec.rb | 2 +- spec/lib/gitlab/import_export/all_models.yml | 3 + .../base/relation_factory_spec.rb | 24 ++- spec/mailers/devise_mailer_spec.rb | 33 +++ spec/models/application_setting_spec.rb | 6 + spec/models/ci/build_execution_config_spec.rb | 51 +++++ spec/models/ci/build_spec.rb | 1 + spec/models/ci/pipeline_spec.rb | 1 + spec/models/ci/processable_spec.rb | 2 +- spec/models/concerns/ci/partitionable_spec.rb | 1 + spec/models/email_spec.rb | 65 +++++- spec/models/group_spec.rb | 40 ---- spec/models/import/source_user_spec.rb | 21 ++ spec/models/integrations/jira_spec.rb | 41 ---- spec/models/work_items/parent_link_spec.rb | 15 ++ .../graphql/integrations/exclusions_spec.rb | 69 ++++++ .../integrations/exclusions/create_spec.rb | 60 ++++++ .../integrations/exclusions/delete_spec.rb | 61 ++++++ .../import/source_users_controller_spec.rb | 104 +++++++++ spec/services/groups/create_service_spec.rb | 18 ++ .../types/query_type_shared_context.rb | 1 + ...ondary_emails_deletion_cron_worker_spec.rb | 84 ++++++++ tooling/danger/project_helper.rb | 2 +- 140 files changed, 1944 insertions(+), 733 deletions(-) delete mode 100644 .rubocop_todo/lint/or_assignment_to_constant.yml delete mode 100644 .rubocop_todo/lint/redundant_string_coercion.yml delete mode 100644 .rubocop_todo/rspec/env_mocking.yml create mode 100644 app/controllers/import/source_users_controller.rb create mode 100644 app/graphql/mutations/integrations/exclusions/create.rb create mode 100644 app/graphql/mutations/integrations/exclusions/delete.rb create mode 100644 app/graphql/resolvers/integrations/exclusions_resolver.rb create mode 100644 app/graphql/types/integrations/exclusion_type.rb create mode 100644 app/graphql/types/integrations/integration_type_enum.rb create mode 100644 app/models/ci/build_execution_config.rb create mode 100644 app/validators/json_schemas/run_steps.json create mode 100644 app/workers/users/unconfirmed_secondary_emails_deletion_cron_worker.rb delete mode 100644 config/feature_flags/gitlab_com_derisk/jira_multiple_project_keys.yml create mode 100644 db/docs/p_ci_builds_execution_configs.yml create mode 100644 db/migrate/20240423064716_create_ci_build_execution_config.rb create mode 100644 db/migrate/20240423102625_create_partitions_for_p_ci_builds_execution_configs.rb create mode 100644 db/migrate/20240425091407_add_execution_config_id_to_p_ci_builds.rb create mode 100644 db/migrate/20240501103038_index_emails_on_created_at_where_confirmed_at_is_null.rb create mode 100644 db/post_migrate/20240426135340_prepare_async_index_to_execution_config_id_in_ci_build.rb create mode 100644 db/post_migrate/20240502062514_add_foreign_key_from_pipeline_to_ci_builds_to_execution_configs.rb create mode 100644 db/schema_migrations/20240423064716 create mode 100644 db/schema_migrations/20240423102625 create mode 100644 db/schema_migrations/20240425091407 create mode 100644 db/schema_migrations/20240426135340 create mode 100644 db/schema_migrations/20240501103038 create mode 100644 db/schema_migrations/20240502062514 create mode 100644 qa/qa/service/docker_run/product_analytics/dotnet_sdk_app.rb create mode 100644 spec/factories/ci/builds_execution_configs.rb create mode 100644 spec/models/ci/build_execution_config_spec.rb create mode 100644 spec/requests/api/graphql/integrations/exclusions_spec.rb create mode 100644 spec/requests/api/graphql/mutations/integrations/exclusions/create_spec.rb create mode 100644 spec/requests/api/graphql/mutations/integrations/exclusions/delete_spec.rb create mode 100644 spec/requests/import/source_users_controller_spec.rb create mode 100644 spec/workers/users/unconfirmed_secondary_emails_deletion_cron_worker_spec.rb diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 94d91326842..92f84f69b44 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -1701,9 +1701,6 @@ # Run tests automatically for MRs that touch QA files - <<: *if-merge-request changes: *qa-patterns - # Run tests automatically for MRS that touch GITALY_SERVER_VERSION - - <<: *if-merge-request - changes: *gitaly-patterns # Otherwise, only run tests after the MR is approved - <<: *if-merge-request-not-approved when: never @@ -2366,6 +2363,9 @@ changes: *code-backstage-qa-patterns - <<: *if-merge-request changes: *workhorse-patterns + - <<: *if-merge-request + changes: *rubocop-patterns + .rails:rules:detect-previous-failed-tests: rules: diff --git a/.rubocop_todo/layout/argument_alignment.yml b/.rubocop_todo/layout/argument_alignment.yml index 1ac09bfa157..9d1a620b048 100644 --- a/.rubocop_todo/layout/argument_alignment.yml +++ b/.rubocop_todo/layout/argument_alignment.yml @@ -86,22 +86,6 @@ Layout/ArgumentAlignment: - 'app/graphql/types/notes/update_diff_image_position_input_type.rb' - 'app/graphql/types/packages/cleanup/policy_type.rb' - 'app/graphql/types/packages/file_metadata_type.rb' - - 'app/graphql/types/work_items/widgets/hierarchy_type.rb' - - 'app/graphql/types/work_items/widgets/hierarchy_update_input_type.rb' - - 'app/graphql/types/work_items/widgets/labels_update_input_type.rb' - - 'app/graphql/types/work_items/widgets/milestone_input_type.rb' - - 'app/graphql/types/work_items/widgets/milestone_type.rb' - - 'app/graphql/types/work_items/widgets/start_and_due_date_update_input_type.rb' - - 'app/graphql/types/x509_certificate_type.rb' - - 'app/graphql/types/x509_issuer_type.rb' - - 'app/services/lfs/lock_file_service.rb' - - 'app/services/markdown_content_rewriter_service.rb' - - 'app/services/members/base_service.rb' - - 'app/services/ml/experiment_tracking/experiment_repository.rb' - - 'app/services/post_receive_service.rb' - - 'app/services/preview_markdown_service.rb' - - 'app/services/protected_branches/api_service.rb' - - 'app/services/protected_branches/legacy_api_create_service.rb' - 'ee/app/graphql/ee/mutations/issues/create.rb' - 'ee/app/graphql/ee/mutations/issues/update.rb' - 'ee/app/graphql/ee/mutations/work_items/create.rb' diff --git a/.rubocop_todo/lint/or_assignment_to_constant.yml b/.rubocop_todo/lint/or_assignment_to_constant.yml deleted file mode 100644 index 64ebe9e49b9..00000000000 --- a/.rubocop_todo/lint/or_assignment_to_constant.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# Cop supports --autocorrect. -Lint/OrAssignmentToConstant: - Exclude: - - 'lib/gitlab/email/handler/base_handler.rb' - - 'tooling/danger/project_helper.rb' diff --git a/.rubocop_todo/lint/redundant_string_coercion.yml b/.rubocop_todo/lint/redundant_string_coercion.yml deleted file mode 100644 index 2663e0420b3..00000000000 --- a/.rubocop_todo/lint/redundant_string_coercion.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# Cop supports --autocorrect. -Lint/RedundantStringCoercion: - Exclude: - - 'ee/bin/geo_log_cursor' - - 'ee/db/fixtures/development/31_devops_adoption.rb' diff --git a/.rubocop_todo/migration/ensure_factory_for_table.yml b/.rubocop_todo/migration/ensure_factory_for_table.yml index f5a8c65853c..96f9b79d1e8 100644 --- a/.rubocop_todo/migration/ensure_factory_for_table.yml +++ b/.rubocop_todo/migration/ensure_factory_for_table.yml @@ -56,3 +56,4 @@ Migration/EnsureFactoryForTable: - 'db/migrate/20240304184128_create_ci_build_names_table.rb' - 'db/migrate/20240306121653_create_relation_import_tracker.rb' - 'db/migrate/20240404192955_create_early_access_program_tracking_events.rb' + - 'db/migrate/20240423064716_create_ci_build_execution_config.rb' diff --git a/.rubocop_todo/rspec/env_mocking.yml b/.rubocop_todo/rspec/env_mocking.yml deleted file mode 100644 index c9e0dad986b..00000000000 --- a/.rubocop_todo/rspec/env_mocking.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -# Cop supports --autocorrect. -RSpec/EnvMocking: - Exclude: - - 'ee/spec/lib/gitlab/elastic/client_spec.rb' - - 'spec/initializers/net_http_patch_spec.rb' - - 'spec/lib/gitlab/database/reflection_spec.rb' diff --git a/app/assets/javascripts/content_editor/components/wrappers/code_block.vue b/app/assets/javascripts/content_editor/components/wrappers/code_block.vue index 497413ab452..6f20a424eac 100644 --- a/app/assets/javascripts/content_editor/components/wrappers/code_block.vue +++ b/app/assets/javascripts/content_editor/components/wrappers/code_block.vue @@ -134,7 +134,7 @@ export default { if (!this.editor.isActive('diagram')) return; - this.diagramSource = this.$refs.nodeViewContent.$el.textContent; + this.diagramSource = this.$refs.nodeViewContent?.$el.textContent || ''; if (this.node.attrs.language !== 'mermaid') { this.diagramUrl = await this.contentEditor.renderDiagram( diff --git a/app/assets/javascripts/content_editor/extensions/code_suggestion.js b/app/assets/javascripts/content_editor/extensions/code_suggestion.js index 45090d57559..33e0dd13289 100644 --- a/app/assets/javascripts/content_editor/extensions/code_suggestion.js +++ b/app/assets/javascripts/content_editor/extensions/code_suggestion.js @@ -67,7 +67,7 @@ export default CodeBlockHighlight.extend({ return [ { priority: PARSE_HTML_PRIORITY_HIGHEST, - tag: 'pre[lang="suggestion"]', + tag: 'pre[data-canonical-lang="suggestion"]', }, ]; }, diff --git a/app/assets/javascripts/content_editor/extensions/diagram.js b/app/assets/javascripts/content_editor/extensions/diagram.js index 7c4a56468eb..60c337bc572 100644 --- a/app/assets/javascripts/content_editor/extensions/diagram.js +++ b/app/assets/javascripts/content_editor/extensions/diagram.js @@ -39,7 +39,7 @@ export default CodeBlockHighlight.extend({ return [ { priority: PARSE_HTML_PRIORITY_HIGHEST, - tag: 'pre[lang="mermaid"]', + tag: 'pre[data-canonical-lang="mermaid"]', getAttrs: () => ({ language: 'mermaid' }), }, { diff --git a/app/assets/javascripts/deploy_keys/index.js b/app/assets/javascripts/deploy_keys/index.js index 673462073f0..af25b2261a5 100644 --- a/app/assets/javascripts/deploy_keys/index.js +++ b/app/assets/javascripts/deploy_keys/index.js @@ -7,6 +7,9 @@ Vue.use(VueApollo); export default () => { const el = document.getElementById('js-deploy-keys'); + + if (!el) return false; + return new Vue({ el, apolloProvider: createApolloProvider({ diff --git a/app/assets/javascripts/integrations/edit/components/jira_issues_fields.vue b/app/assets/javascripts/integrations/edit/components/jira_issues_fields.vue index 958916fd9b0..57fbc661237 100644 --- a/app/assets/javascripts/integrations/edit/components/jira_issues_fields.vue +++ b/app/assets/javascripts/integrations/edit/components/jira_issues_fields.vue @@ -2,7 +2,6 @@ import { GlFormGroup, GlFormCheckbox, GlFormInput } from '@gitlab/ui'; // eslint-disable-next-line no-restricted-imports import { mapGetters } from 'vuex'; -import { s__, __ } from '~/locale'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; export default { @@ -65,38 +64,15 @@ export default { data() { return { enableJiraIssues: this.initialEnableJiraIssues, - projectKey: this.initialProjectKey, projectKeys: this.initialProjectKeys, }; }, computed: { ...mapGetters(['isInheriting']), - multipleProjectKeys() { - return this.glFeatures.jiraMultipleProjectKeys; - }, - checkboxDisabled() { return !this.showJiraIssuesIntegration || this.isInheriting; }, - - validProjectKey() { - // Allow saving the form without project_key when feature flag is enabled. - // This will be improved in https://gitlab.com/gitlab-org/gitlab/-/issues/452161. - if (this.multipleProjectKeys) { - return true; - } - - return !this.enableJiraIssues || Boolean(this.projectKey) || !this.isValidated; - }, - }, - i18n: { - enableCheckboxHelp: s__( - 'JiraService|Warning: All users with access to this GitLab project can view all issues from the Jira project you specify.', - ), - projectKeyLabel: s__('JiraService|Jira project key'), - projectKeyPlaceholder: s__('JiraService|AB'), - requiredFieldFeedback: __('This field is required.'), }, }; @@ -112,14 +88,18 @@ export default { > {{ s__('JiraService|View Jira issues') }}
- -