From e8360356fbb7af4aa20703448dccedc70bfbea6b Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 2 Feb 2024 03:11:42 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- Gemfile | 4 +- Gemfile.checksum | 6 +- Gemfile.lock | 11 +- app/assets/javascripts/crm/contacts/bundle.js | 4 + .../crm/contacts/components/contacts_root.vue | 29 +++- .../javascripts/crm/organizations/bundle.js | 4 + .../components/organizations_root.vue | 31 +++-- .../graphql_shared/possible_types.json | 1 + app/graphql/gitlab_schema.rb | 6 +- app/graphql/types/group_type.rb | 9 ++ .../types/work_items/widget_interface.rb | 8 +- .../work_items/widgets/time_tracking_type.rb | 27 ++++ app/models/concerns/time_trackable.rb | 2 +- app/models/work_item.rb | 4 + app/models/work_items/type.rb | 4 + app/models/work_items/widget_definition.rb | 3 +- .../work_items/widgets/time_tracking.rb | 26 ++++ app/policies/group_policy.rb | 1 + .../work_items/callbacks/time_tracking.rb | 20 +++ app/views/groups/crm/contacts/index.html.haml | 11 +- .../groups/crm/organizations/index.html.haml | 11 +- db/docs/security_trainings.yml | 13 +- db/docs/terraform_state_versions.yml | 20 ++- db/docs/users_security_dashboard_projects.yml | 10 +- db/docs/vulnerabilities.yml | 13 +- db/docs/vulnerability_feedback.yml | 13 +- .../vulnerability_historical_statistics.yml | 13 +- db/docs/vulnerability_identifiers.yml | 13 +- db/docs/vulnerability_occurrences.yml | 10 +- db/docs/vulnerability_reads.yml | 10 +- db/docs/vulnerability_remediations.yml | 10 +- db/docs/vulnerability_scanners.yml | 10 +- db/docs/vulnerability_statistics.yml | 10 +- ...ng_widget_definition_to_work_item_types.rb | 64 +++++++++ db/schema_migrations/20240118170849 | 1 + doc/administration/compliance.md | 2 +- .../monitoring/prometheus/gitlab_metrics.md | 2 +- doc/api/graphql/reference/index.md | 16 +++ doc/api/settings.md | 2 +- .../blueprints/organization/index.md | 2 +- .../index.md | 8 +- doc/development/code_review.md | 4 +- doc/tutorials/scan_result_policy/index.md | 24 ++-- doc/tutorials/secure_application.md | 2 +- .../get-started-security.md | 2 +- doc/user/application_security/index.md | 2 +- .../application_security/policies/index.md | 10 +- .../policies/scan-result-policies.md | 103 +++++++------- doc/user/crm/index.md | 22 +-- .../project/merge_requests/approvals/index.md | 4 +- .../project/merge_requests/approvals/rules.md | 2 +- doc/user/project/protected_branches.md | 2 +- .../work_items/base_type_importer.rb | 24 ++-- lib/gitlab/graphql/queries.rb | 37 +++-- .../issue_and_merge_request_actions.rb | 6 +- .../groups/menus/customer_relations_menu.rb | 21 +-- .../groups/super_sidebar_menus/plan_menu.rb | 3 +- locale/gitlab.pot | 12 +- qa/gdk/entrypoint | 5 + spec/frontend/crm/contacts_root_spec.js | 18 +++ spec/frontend/crm/organizations_root_spec.js | 18 +++ spec/graphql/gitlab_schema_spec.rb | 33 +++++ .../mutations/custom_emoji/destroy_spec.rb | 2 +- spec/graphql/types/group_type_spec.rb | 78 +++++++++++ .../types/work_items/widget_interface_spec.rb | 5 + .../widgets/time_tracking_type_spec.rb | 11 ++ spec/lib/gitlab/graphql/queries_spec.rb | 2 +- .../super_sidebar_menus/plan_menu_spec.rb | 3 +- ...dget_definition_to_work_item_types_spec.rb | 10 ++ spec/models/work_item_spec.rb | 11 ++ spec/models/work_items/type_spec.rb | 19 +++ .../work_items/widget_definition_spec.rb | 3 +- .../work_items/widgets/time_tracking_spec.rb | 40 ++++++ .../mutations/work_items/update_spec.rb | 98 +++++++++++++ spec/requests/api/graphql/work_item_spec.rb | 2 +- .../callbacks/time_tracking_spec.rb | 131 ++++++++++++++++++ .../helpers/navbar_structure_helper.rb | 7 +- vendor/gems/sidekiq-7.1.6/.gitlab-ci.yml | 3 +- 78 files changed, 1038 insertions(+), 205 deletions(-) create mode 100644 app/graphql/types/work_items/widgets/time_tracking_type.rb create mode 100644 app/models/work_items/widgets/time_tracking.rb create mode 100644 app/services/work_items/callbacks/time_tracking.rb create mode 100644 db/migrate/20240118170849_add_time_tracking_widget_definition_to_work_item_types.rb create mode 100644 db/schema_migrations/20240118170849 create mode 100644 spec/graphql/types/work_items/widgets/time_tracking_type_spec.rb create mode 100644 spec/migrations/20240118170849_add_time_tracking_widget_definition_to_work_item_types_spec.rb create mode 100644 spec/models/work_items/widgets/time_tracking_spec.rb create mode 100644 spec/services/work_items/callbacks/time_tracking_spec.rb diff --git a/Gemfile b/Gemfile index 4c6b0596b7d..a318a61a9d9 100644 --- a/Gemfile +++ b/Gemfile @@ -141,11 +141,11 @@ gem 'grape-path-helpers', '~> 2.0.0', feature_category: :api gem 'rack-cors', '~> 2.0.1', require: 'rack/cors' # rubocop:todo Gemfile/MissingFeatureCategory # GraphQL API -gem 'graphql', '~> 2.0.27', feature_category: :api +gem 'graphql', '~> 2.2.5', feature_category: :api gem 'graphql-docs', '~> 4.0.0', group: [:development, :test], feature_category: :api gem 'graphiql-rails', '~> 1.8.0', feature_category: :api gem 'apollo_upload_server', '~> 2.1.5', feature_category: :api -gem 'graphlient', '~> 0.5.0', feature_category: :importers # Used by BulkImport feature (group::import) +gem 'graphlient', '~> 0.6.0', feature_category: :importers # Used by BulkImport feature (group::import) # Generate Fake data gem 'ffaker', '~> 2.10' # rubocop:todo Gemfile/MissingFeatureCategory diff --git a/Gemfile.checksum b/Gemfile.checksum index f6f36ecd72c..3b69af5d85c 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -275,10 +275,10 @@ {"name":"grape-swagger-entity","version":"0.5.1","platform":"ruby","checksum":"f51e372d00ac96cf90d948f87b3f4eb287ab053976ca57ad503d442ad8605523"}, {"name":"grape_logging","version":"1.8.4","platform":"ruby","checksum":"efcc3e322dbd5d620a68f078733b7db043cf12680144cd03c982f14115c792d1"}, {"name":"graphiql-rails","version":"1.8.0","platform":"ruby","checksum":"02e2c5098be2c6c29219a0e9b2910a2cd3c494301587a3199a7c4484d8038ed1"}, -{"name":"graphlient","version":"0.5.0","platform":"ruby","checksum":"0f2c9416142e50b6bd4edcd86fe6810f792951732c487f9061aee6d420e0f292"}, +{"name":"graphlient","version":"0.6.0","platform":"ruby","checksum":"b8d8664b4c8ec215012cbe3cca918a045b0a206d709712d68b6db51fd215c5c0"}, {"name":"graphlyte","version":"1.0.0","platform":"ruby","checksum":"b5af4ab67dde6e961f00ea1c18f159f73b52ed11395bb4ece297fe628fa1804d"}, -{"name":"graphql","version":"2.0.27","platform":"ruby","checksum":"1f59be5a770248595971a261c96edef3adcf323e93387e53d1ca1ffd16448b36"}, -{"name":"graphql-client","version":"0.18.0","platform":"ruby","checksum":"98aadc810f23dce5404621903945aa584279574f87855b4301d69c90ddc6250b"}, +{"name":"graphql","version":"2.2.5","platform":"ruby","checksum":"15eeb4b4b29b8502de22e6f2794ea5b7bf75b3a8c0aa5d776f5e614ef543bc7e"}, +{"name":"graphql-client","version":"0.19.0","platform":"ruby","checksum":"fe699d81976f916bd8f989216155326449cb8475a5d69fa1dd054012a86969c7"}, {"name":"graphql-docs","version":"4.0.0","platform":"ruby","checksum":"f68296959263db26e1b7ba7058856d67b641cf508187222268be58f09dfa02d7"}, {"name":"grpc","version":"1.60.0","platform":"aarch64-linux","checksum":"f8b29900bf9a8f18ac362da4057983ad7fe3774bec3f308ac3f3006669c670f9"}, {"name":"grpc","version":"1.60.0","platform":"arm64-darwin","checksum":"57e4477f85fd98822b9421a5c702c642ff8a8cc1624ec4325604867017c67ec3"}, diff --git a/Gemfile.lock b/Gemfile.lock index 6c3c81f3d7d..4f4e332720a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -870,13 +870,14 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphlient (0.5.0) + graphlient (0.6.0) faraday (>= 1.0) faraday_middleware graphql-client graphlyte (1.0.0) - graphql (2.0.27) - graphql-client (0.18.0) + graphql (2.2.5) + racc (~> 1.4) + graphql-client (0.19.0) activesupport (>= 3.0) graphql graphql-docs (4.0.0) @@ -1959,9 +1960,9 @@ DEPENDENCIES grape-swagger-entity (~> 0.5.1) grape_logging (~> 1.8) graphiql-rails (~> 1.8.0) - graphlient (~> 0.5.0) + graphlient (~> 0.6.0) graphlyte (~> 1.0.0) - graphql (~> 2.0.27) + graphql (~> 2.2.5) graphql-docs (~> 4.0.0) grpc (~> 1.60.0) gssapi (~> 1.3.1) diff --git a/app/assets/javascripts/crm/contacts/bundle.js b/app/assets/javascripts/crm/contacts/bundle.js index fe62b7cfbe3..a7a3b72e87c 100644 --- a/app/assets/javascripts/crm/contacts/bundle.js +++ b/app/assets/javascripts/crm/contacts/bundle.js @@ -26,7 +26,9 @@ export default () => { basePath, groupFullPath, groupIssuesPath, + groupOrganizationsPath, canAdminCrmContact, + canReadCrmOrganization, groupId, textQuery, } = el.dataset; @@ -44,7 +46,9 @@ export default () => { provide: { groupFullPath, groupIssuesPath, + groupOrganizationsPath, canAdminCrmContact: parseBoolean(canAdminCrmContact), + canReadCrmOrganization: parseBoolean(canReadCrmOrganization), groupId, textQuery, }, diff --git a/app/assets/javascripts/crm/contacts/components/contacts_root.vue b/app/assets/javascripts/crm/contacts/components/contacts_root.vue index 90a8701cea6..1cfb5025ab9 100644 --- a/app/assets/javascripts/crm/contacts/components/contacts_root.vue +++ b/app/assets/javascripts/crm/contacts/components/contacts_root.vue @@ -22,7 +22,14 @@ export default { directives: { GlTooltip: GlTooltipDirective, }, - inject: ['canAdminCrmContact', 'groupFullPath', 'groupIssuesPath', 'textQuery'], + inject: [ + 'canAdminCrmContact', + 'canReadCrmOrganization', + 'groupFullPath', + 'groupIssuesPath', + 'groupOrganizationsPath', + 'textQuery', + ], data() { return { contacts: { list: [] }, @@ -147,6 +154,7 @@ export default { title: s__('Crm|Customer relations contacts'), newContact: s__('Crm|New contact'), errorMsg: __('Something went wrong. Please try again.'), + organizations: s__('Crm|Organizations'), }, EDIT_ROUTE_NAME, NEW_ROUTE_NAME, @@ -191,11 +199,20 @@ export default { @error-alert-dismissed="errorAlertDismissed" >