From 1252510698142c106b53e8c3bc08b4210c4c3828 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 10 Oct 2024 12:16:58 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .rubocop_todo/gitlab/bounded_contexts.yml | 2 +- .rubocop_todo/layout/line_length.yml | 1 - .../string_identifier_argument.yml | 1 - .rubocop_todo/rspec/expect_in_hook.yml | 1 - .../javascripts/access_level/constants.js | 19 + .../components/merge_requests_list_app.vue | 24 + .../javascripts/merge_requests/list/index.js | 2 + .../queries/merge_request.fragment.graphql | 2 + .../projects/your_work/components/app.vue | 30 +- .../your_work/components/tab_view.vue | 47 +- .../projects/your_work/constants.js | 9 + .../graphql/queries/projects.query.graphql | 8 + .../queries/user_projects.query.graphql | 28 +- .../security_configuration/components/app.vue | 8 +- .../list/components/issuable_item.vue | 1 + .../list/components/issuable_list_root.vue | 3 + app/assets/stylesheets/pages/events.scss | 11 - .../projects/compare_controller.rb | 24 +- app/graphql/types/merge_request_type.rb | 3 + app/helpers/merge_requests_helper.rb | 3 +- .../concerns/update_namespace_statistics.rb | 4 +- app/models/namespace_statistics.rb | 6 +- app/models/packages/conan/package.rb | 2 + .../packages/conan/package_reference.rb | 2 + app/models/packages/conan/package_revision.rb | 22 + app/models/project.rb | 6 +- .../packages/maven/cached_response.rb | 6 + .../cancel_redundant_pipelines_service.rb | 72 +-- .../merge_requests/refresh_service.rb | 2 +- ...undant_pipelines_without_hierarchy_cte.yml | 9 - config/routes/repository.rb | 3 +- ...l_boards_epic_board_positions_group_id.yml | 2 +- db/docs/packages_conan_package_revisions.yml | 12 + ...create_packages_conan_package_revisions.rb | 21 + ...key_in_packages_conan_package_revisions.rb | 18 + ...key_in_packages_conan_package_revisions.rb | 17 + ...key_in_packages_conan_package_revisions.rb | 18 + ...ate_memberships_to_bulk_import_entities.rb | 9 + ...ll_boards_epic_board_positions_group_id.rb | 21 + ...es_correct_work_item_type_id_constraint.rb | 22 + db/schema_migrations/20240918122124 | 1 + db/schema_migrations/20240918124015 | 1 + db/schema_migrations/20240918124041 | 1 + db/schema_migrations/20240918124434 | 1 + db/schema_migrations/20241003214408 | 1 + db/schema_migrations/20241009232130 | 1 + db/schema_migrations/20241010054851 | 1 + db/structure.sql | 43 +- .../install_infrastructure.md | 2 +- doc/api/graphql/reference/index.md | 2 + doc/ci/debugging.md | 2 +- doc/development/documentation/workflow.md | 6 +- ..._runner_fleet_config_and_best_practices.md | 568 ++++++++++++++++++ .../img/nodepool_illustration_example.png | Bin 0 -> 57975 bytes .../img/runner_fleet_steps_diagram.png | Bin 0 -> 13099 bytes .../runner_fleet_design_guides/index.md | 18 + doc/user/group/saml_sso/index.md | 2 +- doc/user/group/saml_sso/troubleshooting.md | 19 +- doc/user/project/settings/import_export.md | 10 +- .../workspace/gitlab_agent_configuration.md | 3 +- lib/gitlab/email/receiver.rb | 49 +- lib/gitlab/email/service_desk/custom_email.rb | 16 +- lib/gitlab/email/service_desk_receiver.rb | 3 +- locale/gitlab.pot | 24 +- rubocop/cop/gitlab/doc_url.rb | 2 +- .../projects/compare_controller_spec.rb | 50 +- spec/db/schema_spec.rb | 2 +- .../packages/conan/package_revision.rb | 10 + .../merge_requests_list_app_spec.js | 23 + .../frontend/merge_requests/list/mock_data.js | 2 + .../projects/your_work/components/app_spec.js | 66 +- .../your_work/components/mock_data.js | 5 + .../your_work/components/tab_view_spec.js | 43 +- .../components/app_spec.js | 4 +- spec/graphql/types/merge_request_type_spec.rb | 15 +- spec/helpers/merge_requests_helper_spec.rb | 3 +- spec/lib/gitlab/auth/visitor_location_spec.rb | 4 +- spec/lib/gitlab/database/sharding_key_spec.rb | 1 - spec/lib/gitlab/email/receiver_spec.rb | 144 +++-- .../email/service_desk/custom_email_spec.rb | 53 +- spec/models/dependency_proxy/blob_spec.rb | 2 +- spec/models/dependency_proxy/manifest_spec.rb | 2 +- spec/models/namespace_statistics_spec.rb | 5 +- .../packages/conan/package_reference_spec.rb | 5 + .../packages/conan/package_revision_spec.rb | 50 ++ spec/models/packages/conan/package_spec.rb | 5 + spec/models/project_spec.rb | 14 +- .../packages/maven/cached_response_spec.rb | 18 + ...te_namespace_statistics_shared_examples.rb | 44 +- ...service_desk_email_receiver_worker_spec.rb | 2 +- 90 files changed, 1572 insertions(+), 277 deletions(-) create mode 100644 app/models/packages/conan/package_revision.rb delete mode 100644 config/feature_flags/gitlab_com_derisk/cancel_redundant_pipelines_without_hierarchy_cte.yml create mode 100644 db/docs/packages_conan_package_revisions.yml create mode 100644 db/migrate/20240918122124_create_packages_conan_package_revisions.rb create mode 100644 db/migrate/20240918124015_add_package_id_as_foreign_key_in_packages_conan_package_revisions.rb create mode 100644 db/migrate/20240918124041_add_project_id_as_foreign_key_in_packages_conan_package_revisions.rb create mode 100644 db/migrate/20240918124434_add_package_reference_id_as_foreign_key_in_packages_conan_package_revisions.rb create mode 100644 db/migrate/20241003214408_add_migrate_memberships_to_bulk_import_entities.rb create mode 100644 db/post_migrate/20241009232130_finalize_backfill_boards_epic_board_positions_group_id.rb create mode 100644 db/post_migrate/20241010054851_remove_issues_correct_work_item_type_id_constraint.rb create mode 100644 db/schema_migrations/20240918122124 create mode 100644 db/schema_migrations/20240918124015 create mode 100644 db/schema_migrations/20240918124041 create mode 100644 db/schema_migrations/20240918124434 create mode 100644 db/schema_migrations/20241003214408 create mode 100644 db/schema_migrations/20241009232130 create mode 100644 db/schema_migrations/20241010054851 create mode 100644 doc/topics/runner_fleet_design_guides/gitlab_runner_fleet_config_and_best_practices.md create mode 100644 doc/topics/runner_fleet_design_guides/img/nodepool_illustration_example.png create mode 100644 doc/topics/runner_fleet_design_guides/img/runner_fleet_steps_diagram.png create mode 100644 doc/topics/runner_fleet_design_guides/index.md create mode 100644 spec/factories/packages/conan/package_revision.rb create mode 100644 spec/models/packages/conan/package_revision_spec.rb diff --git a/.rubocop_todo/gitlab/bounded_contexts.yml b/.rubocop_todo/gitlab/bounded_contexts.yml index bd1243ce30d76..424517f16ac09 100644 --- a/.rubocop_todo/gitlab/bounded_contexts.yml +++ b/.rubocop_todo/gitlab/bounded_contexts.yml @@ -3768,7 +3768,7 @@ Gitlab/BoundedContexts: - 'ee/lib/quality/seeders/dependencies.rb' - 'ee/lib/quality/seeders/insights/issues.rb' - 'ee/lib/quality/seeders/vulnerabilities.rb' - - 'ee/lib/sidebars/admin/menus/ai_powered_features_menu.rb' + - 'ee/lib/sidebars/admin/menus/self_hosted_models_menu.rb' - 'ee/lib/sidebars/admin/menus/code_suggestions_menu.rb' - 'ee/lib/sidebars/admin/menus/credentials_menu.rb' - 'ee/lib/sidebars/admin/menus/geo_menu.rb' diff --git a/.rubocop_todo/layout/line_length.yml b/.rubocop_todo/layout/line_length.yml index 9d43402f37318..5d7c4acf14cc3 100644 --- a/.rubocop_todo/layout/line_length.yml +++ b/.rubocop_todo/layout/line_length.yml @@ -342,7 +342,6 @@ Layout/LineLength: - 'app/models/namespace.rb' - 'app/models/namespace/package_setting.rb' - 'app/models/namespace_setting.rb' - - 'app/models/namespace_statistics.rb' - 'app/models/namespaces/traversal/linear.rb' - 'app/models/notification_setting.rb' - 'app/models/oauth_access_token.rb' diff --git a/.rubocop_todo/performance/string_identifier_argument.yml b/.rubocop_todo/performance/string_identifier_argument.yml index afbf8d66626b2..35e36337e493b 100644 --- a/.rubocop_todo/performance/string_identifier_argument.yml +++ b/.rubocop_todo/performance/string_identifier_argument.yml @@ -217,7 +217,6 @@ Performance/StringIdentifierArgument: - 'spec/support/shared_examples/models/concerns/cascading_namespace_setting_shared_examples.rb' - 'spec/support/shared_examples/models/concerns/cascading_project_setting_shared_examples.rb' - 'spec/support/shared_examples/models/concerns/integrations/reset_secret_fields_shared_examples.rb' - - 'spec/support/shared_examples/models/concerns/update_namespace_statistics_shared_examples.rb' - 'spec/support/shared_examples/models/email_format_shared_examples.rb' - 'spec/support/shared_examples/models/project_ci_cd_settings_shared_examples.rb' - 'spec/support/shared_examples/policies/project_policy_shared_examples.rb' diff --git a/.rubocop_todo/rspec/expect_in_hook.yml b/.rubocop_todo/rspec/expect_in_hook.yml index 743b8d7df529c..7411a614bcf3c 100644 --- a/.rubocop_todo/rspec/expect_in_hook.yml +++ b/.rubocop_todo/rspec/expect_in_hook.yml @@ -392,7 +392,6 @@ RSpec/ExpectInHook: - 'spec/support/shared_examples/lib/wikis_api_examples.rb' - 'spec/support/shared_examples/metrics/sampler_shared_examples.rb' - 'spec/support/shared_examples/models/concerns/has_wiki_shared_examples.rb' - - 'spec/support/shared_examples/models/concerns/update_namespace_statistics_shared_examples.rb' - 'spec/support/shared_examples/models/mentionable_shared_examples.rb' - 'spec/support/shared_examples/quick_actions/issuable/close_quick_action_shared_examples.rb' - 'spec/support/shared_examples/requests/api/helm_packages_shared_examples.rb' diff --git a/app/assets/javascripts/access_level/constants.js b/app/assets/javascripts/access_level/constants.js index 9257d71eb57f2..07885e0df5374 100644 --- a/app/assets/javascripts/access_level/constants.js +++ b/app/assets/javascripts/access_level/constants.js @@ -10,6 +10,25 @@ export const ACCESS_LEVEL_MAINTAINER_INTEGER = 40; export const ACCESS_LEVEL_OWNER_INTEGER = 50; export const ACCESS_LEVEL_ADMIN_INTEGER = 60; +// Matches `app/graphql/types/access_level_enum.rb` +export const ACCESS_LEVEL_NO_ACCESS_STRING = 'NO_ACCESS'; +export const ACCESS_LEVEL_MINIMAL_ACCESS_STRING = 'MINIMAL_ACCESS'; +export const ACCESS_LEVEL_GUEST_STRING = 'GUEST'; +export const ACCESS_LEVEL_REPORTER_STRING = 'REPORTER'; +export const ACCESS_LEVEL_DEVELOPER_STRING = 'DEVELOPER'; +export const ACCESS_LEVEL_MAINTAINER_STRING = 'MAINTAINER'; +export const ACCESS_LEVEL_OWNER_STRING = 'OWNER'; + +export const ACCESS_LEVELS_INTEGER_TO_STRING = { + [ACCESS_LEVEL_NO_ACCESS_INTEGER]: ACCESS_LEVEL_NO_ACCESS_STRING, + [ACCESS_LEVEL_MINIMAL_ACCESS_INTEGER]: ACCESS_LEVEL_MINIMAL_ACCESS_STRING, + [ACCESS_LEVEL_GUEST_INTEGER]: ACCESS_LEVEL_GUEST_STRING, + [ACCESS_LEVEL_REPORTER_INTEGER]: ACCESS_LEVEL_REPORTER_STRING, + [ACCESS_LEVEL_DEVELOPER_INTEGER]: ACCESS_LEVEL_DEVELOPER_STRING, + [ACCESS_LEVEL_MAINTAINER_INTEGER]: ACCESS_LEVEL_MAINTAINER_STRING, + [ACCESS_LEVEL_OWNER_INTEGER]: ACCESS_LEVEL_OWNER_STRING, +}; + const ACCESS_LEVEL_NO_ACCESS = __('No access'); const ACCESS_LEVEL_MINIMAL_ACCESS = __('Minimal Access'); const ACCESS_LEVEL_GUEST = __('Guest'); diff --git a/app/assets/javascripts/merge_requests/list/components/merge_requests_list_app.vue b/app/assets/javascripts/merge_requests/list/components/merge_requests_list_app.vue index a182dd8b75bb7..3a7238b799ee5 100644 --- a/app/assets/javascripts/merge_requests/list/components/merge_requests_list_app.vue +++ b/app/assets/javascripts/merge_requests/list/components/merge_requests_list_app.vue @@ -2,6 +2,7 @@ import { GlFilteredSearchToken, GlButton, GlLink, GlIcon, GlTooltipDirective } from '@gitlab/ui'; import { isEmpty } from 'lodash'; import ApprovalCount from 'ee_else_ce/merge_requests/components/approval_count.vue'; +import { sprintf, __ } from '~/locale'; import Api from '~/api'; import * as Sentry from '~/sentry/sentry_browser_wrapper'; import { STATUS_ALL, STATUS_CLOSED, STATUS_OPEN, STATUS_MERGED } from '~/issues/constants'; @@ -129,6 +130,7 @@ export default { canBulkUpdate: { default: false }, environmentNamesPath: { default: '' }, mergeTrainsPath: { default: undefined }, + defaultBranch: { default: '' }, }, data() { return { @@ -676,6 +678,11 @@ export default { issuableEventHub.$emit('issuables:updateBulkEdit'); }); }, + targetBranchTooltip(mergeRequest) { + return sprintf(__('Target branch: %{target_branch}'), { + target_branch: mergeRequest.targetBranch, + }); + }, }, STATUS_OPEN, }; @@ -758,6 +765,23 @@ export default { + + diff --git a/app/assets/javascripts/merge_requests/list/index.js b/app/assets/javascripts/merge_requests/list/index.js index f32fce0cee403..951859eccca62 100644 --- a/app/assets/javascripts/merge_requests/list/index.js +++ b/app/assets/javascripts/merge_requests/list/index.js @@ -35,6 +35,7 @@ export async function mountMergeRequestListsApp() { canBulkUpdate, environmentNamesPath, mergeTrainsPath, + defaultBranch, } = el.dataset; return new Vue({ @@ -67,6 +68,7 @@ export async function mountMergeRequestListsApp() { canBulkUpdate: parseBoolean(canBulkUpdate), environmentNamesPath, mergeTrainsPath, + defaultBranch, }, render: (createComponent) => createComponent(MergeRequestsListApp), }); diff --git a/app/assets/javascripts/merge_requests/list/queries/merge_request.fragment.graphql b/app/assets/javascripts/merge_requests/list/queries/merge_request.fragment.graphql index df38b0d30b842..d6ac8bd0fdc60 100644 --- a/app/assets/javascripts/merge_requests/list/queries/merge_request.fragment.graphql +++ b/app/assets/javascripts/merge_requests/list/queries/merge_request.fragment.graphql @@ -48,6 +48,8 @@ fragment MergeRequestFragment on MergeRequest { commitCount sourceBranchExists targetBranchExists + targetBranch + targetBranchPath taskCompletionStatus { completedCount count diff --git a/app/assets/javascripts/projects/your_work/components/app.vue b/app/assets/javascripts/projects/your_work/components/app.vue index 343ce80882483..bf28dced2a36c 100644 --- a/app/assets/javascripts/projects/your_work/components/app.vue +++ b/app/assets/javascripts/projects/your_work/components/app.vue @@ -1,6 +1,6 @@