diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index 94052f9348f..60459fa612d 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -399,6 +399,7 @@ jest vue3 predictive: - jest vue3 mr - .frontend:rules:jest:predictive needs: + - !reference [jest vue3 mr, needs] - "detect-tests" script: - if [[ -s "$RSPEC_CHANGED_FILES_PATH" ]] || [[ -s "$RSPEC_MATCHING_JS_FILES_PATH" ]]; then run_timed_command "yarn jest:ci:vue3-mr:predictive-without-fixtures"; fi @@ -408,6 +409,7 @@ jest-with-fixtures vue3 predictive: - jest-with-fixtures vue3 mr - .frontend:rules:jest:predictive needs: + - !reference [jest-with-fixtures vue3 mr, needs] - "detect-tests" script: - if [[ -s "$RSPEC_CHANGED_FILES_PATH" ]] || [[ -s "$RSPEC_MATCHING_JS_FILES_PATH" ]]; then run_timed_command "yarn jest:ci:vue3-mr:predictive-with-fixtures"; fi diff --git a/GITLAB_KAS_VERSION b/GITLAB_KAS_VERSION index 45713dd755c..84e2db8e4ce 100644 --- a/GITLAB_KAS_VERSION +++ b/GITLAB_KAS_VERSION @@ -1 +1 @@ -fb51af45d021201dc8fca3b0aeacc80c78527307 +46b9580af93104de9b4c1d3dda81e9aaf7eb4c01 diff --git a/Gemfile b/Gemfile index 550562a78bf..a865ff10644 100644 --- a/Gemfile +++ b/Gemfile @@ -589,7 +589,7 @@ group :test do # Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527 gem 'derailed_benchmarks', require: false # rubocop:todo Gemfile/MissingFeatureCategory - gem 'gitlab_quality-test_tooling', '~> 1.35.0', require: false, feature_category: :tooling + gem 'gitlab_quality-test_tooling', '~> 1.37.0', require: false, feature_category: :tooling end gem 'octokit', '~> 9.0', feature_category: :importers diff --git a/Gemfile.checksum b/Gemfile.checksum index 278f7d913c7..55137735158 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -229,7 +229,7 @@ {"name":"gitlab-styles","version":"12.0.1","platform":"ruby","checksum":"d8a302b0ab0e1f18e2d11501760f1b85c5e70b5e5ca628828a0786c7984ed133"}, {"name":"gitlab_chronic_duration","version":"0.12.0","platform":"ruby","checksum":"0d766944d415b5c831f176871ee8625783fc0c5bfbef2d79a3a616f207ffc16d"}, {"name":"gitlab_omniauth-ldap","version":"2.2.0","platform":"ruby","checksum":"bb4d20acb3b123ed654a8f6a47d3fac673ece7ed0b6992edb92dca14bad2838c"}, -{"name":"gitlab_quality-test_tooling","version":"1.35.0","platform":"ruby","checksum":"a1bc432e28cd9d9af6413401c96421f29023d8903be29efbfaec62f369ea244b"}, +{"name":"gitlab_quality-test_tooling","version":"1.37.0","platform":"ruby","checksum":"0dcb9de86b8103c00b2a7f1cf6c6e74409707bf1630e7cec3ab7566181dda35b"}, {"name":"globalid","version":"1.1.0","platform":"ruby","checksum":"b337e1746f0c8cb0a6c918234b03a1ddeb4966206ce288fbb57779f59b2d154f"}, {"name":"gon","version":"6.4.0","platform":"ruby","checksum":"e3a618d659392890f1aa7db420f17c75fd7d35aeb5f8fe003697d02c4b88d2f0"}, {"name":"google-apis-androidpublisher_v3","version":"0.34.0","platform":"ruby","checksum":"d7e1d7dd92f79c498fe2082222a1740d788e022e660c135564b3fd299cab5425"}, diff --git a/Gemfile.lock b/Gemfile.lock index 7b90af74045..a04660f0627 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -766,9 +766,10 @@ GEM omniauth (>= 1.3, < 3) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rubyntlm (~> 0.5) - gitlab_quality-test_tooling (1.35.0) + gitlab_quality-test_tooling (1.37.0) activesupport (>= 7.0, < 7.2) amatch (~> 0.4.1) + fog-google (~> 1.24, >= 1.24.1) gitlab (~> 4.19) http (~> 5.0) influxdb-client (~> 3.1) @@ -2075,7 +2076,7 @@ DEPENDENCIES gitlab-utils! gitlab_chronic_duration (~> 0.12) gitlab_omniauth-ldap (~> 2.2.0) - gitlab_quality-test_tooling (~> 1.35.0) + gitlab_quality-test_tooling (~> 1.37.0) gon (~> 6.4.0) google-apis-androidpublisher_v3 (~> 0.34.0) google-apis-cloudbilling_v1 (~> 0.21.0) diff --git a/Gemfile.next.checksum b/Gemfile.next.checksum index 4daae94a223..c32d221c8de 100644 --- a/Gemfile.next.checksum +++ b/Gemfile.next.checksum @@ -230,7 +230,7 @@ {"name":"gitlab-styles","version":"12.0.1","platform":"ruby","checksum":"d8a302b0ab0e1f18e2d11501760f1b85c5e70b5e5ca628828a0786c7984ed133"}, {"name":"gitlab_chronic_duration","version":"0.12.0","platform":"ruby","checksum":"0d766944d415b5c831f176871ee8625783fc0c5bfbef2d79a3a616f207ffc16d"}, {"name":"gitlab_omniauth-ldap","version":"2.2.0","platform":"ruby","checksum":"bb4d20acb3b123ed654a8f6a47d3fac673ece7ed0b6992edb92dca14bad2838c"}, -{"name":"gitlab_quality-test_tooling","version":"1.35.0","platform":"ruby","checksum":"a1bc432e28cd9d9af6413401c96421f29023d8903be29efbfaec62f369ea244b"}, +{"name":"gitlab_quality-test_tooling","version":"1.37.0","platform":"ruby","checksum":"0dcb9de86b8103c00b2a7f1cf6c6e74409707bf1630e7cec3ab7566181dda35b"}, {"name":"globalid","version":"1.1.0","platform":"ruby","checksum":"b337e1746f0c8cb0a6c918234b03a1ddeb4966206ce288fbb57779f59b2d154f"}, {"name":"gon","version":"6.4.0","platform":"ruby","checksum":"e3a618d659392890f1aa7db420f17c75fd7d35aeb5f8fe003697d02c4b88d2f0"}, {"name":"google-apis-androidpublisher_v3","version":"0.34.0","platform":"ruby","checksum":"d7e1d7dd92f79c498fe2082222a1740d788e022e660c135564b3fd299cab5425"}, @@ -282,7 +282,7 @@ {"name":"graphiql-rails","version":"1.10.0","platform":"ruby","checksum":"b557f989a737c8b9e985142609bec52fb1e9393a701eb50e02a7c14422891040"}, {"name":"graphlient","version":"0.8.0","platform":"ruby","checksum":"98c408da1d083454e9f5e274f3b0b6261e2a0c2b5f2ed7b3ef9441d46f8e7cb1"}, {"name":"graphlyte","version":"1.0.0","platform":"ruby","checksum":"b5af4ab67dde6e961f00ea1c18f159f73b52ed11395bb4ece297fe628fa1804d"}, -{"name":"graphql","version":"2.3.5","platform":"ruby","checksum":"9c367835f86541660d24c3d81632267ecee553d304577aaee070f8ac05860af1"}, +{"name":"graphql","version":"2.3.14","platform":"ruby","checksum":"1781f33ab52f250f7bd6082f40ef15363d6acf98009b7acba70d54bee142f295"}, {"name":"graphql-client","version":"0.23.0","platform":"ruby","checksum":"f238b8e451676baad06bd15f95396e018192243dcf12c4e6d13fb41d9a2babc1"}, {"name":"graphql-docs","version":"5.0.0","platform":"ruby","checksum":"76baca6e5a803a4b6a9fbbbfdbf16742b7c4c546c8592b6e1a7aa4e79e562d04"}, {"name":"grpc","version":"1.63.0","platform":"aarch64-linux","checksum":"dc75c5fd570b819470781d9512105dddfdd11d984f38b8e60bb946f92d1f79ee"}, diff --git a/Gemfile.next.lock b/Gemfile.next.lock index 8718df9a3ca..44a84f5eefa 100644 --- a/Gemfile.next.lock +++ b/Gemfile.next.lock @@ -776,9 +776,10 @@ GEM omniauth (>= 1.3, < 3) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rubyntlm (~> 0.5) - gitlab_quality-test_tooling (1.35.0) + gitlab_quality-test_tooling (1.37.0) activesupport (>= 7.0, < 7.2) amatch (~> 0.4.1) + fog-google (~> 1.24, >= 1.24.1) gitlab (~> 4.19) http (~> 5.0) influxdb-client (~> 3.1) @@ -915,8 +916,9 @@ GEM faraday (~> 2.0) graphql-client graphlyte (1.0.0) - graphql (2.3.5) + graphql (2.3.14) base64 + fiber-storage graphql-client (0.23.0) activesupport (>= 3.0) graphql (>= 1.13.0) @@ -2102,7 +2104,7 @@ DEPENDENCIES gitlab-utils! gitlab_chronic_duration (~> 0.12) gitlab_omniauth-ldap (~> 2.2.0) - gitlab_quality-test_tooling (~> 1.35.0) + gitlab_quality-test_tooling (~> 1.37.0) gon (~> 6.4.0) google-apis-androidpublisher_v3 (~> 0.34.0) google-apis-cloudbilling_v1 (~> 0.21.0) @@ -2130,7 +2132,7 @@ DEPENDENCIES graphiql-rails (~> 1.10) graphlient (~> 0.8.0) graphlyte (~> 1.0.0) - graphql (~> 2.3.5) + graphql (~> 2.3.14) graphql-docs (~> 5.0.0) grpc (= 1.63.0) gssapi (~> 1.3.1) diff --git a/app/assets/javascripts/members/placeholders/components/app.vue b/app/assets/javascripts/members/placeholders/components/app.vue index d8ac1f4fcd0..adaa3148921 100644 --- a/app/assets/javascripts/members/placeholders/components/app.vue +++ b/app/assets/javascripts/members/placeholders/components/app.vue @@ -186,7 +186,7 @@ export default { /> - + diff --git a/app/assets/javascripts/projects/settings/branch_rules/components/view/index.vue b/app/assets/javascripts/projects/settings/branch_rules/components/view/index.vue index 80ff0ccf813..931cf39ecaa 100644 --- a/app/assets/javascripts/projects/settings/branch_rules/components/view/index.vue +++ b/app/assets/javascripts/projects/settings/branch_rules/components/view/index.vue @@ -403,9 +403,7 @@ export default { > -
- {{ $options.i18n.allBranches }} -
+
*
{{ branch }} diff --git a/app/assets/javascripts/super_sidebar/components/global_search/command_palette/command_palette_items.vue b/app/assets/javascripts/super_sidebar/components/global_search/command_palette/command_palette_items.vue index d324304f927..7b13a9b152a 100644 --- a/app/assets/javascripts/super_sidebar/components/global_search/command_palette/command_palette_items.vue +++ b/app/assets/javascripts/super_sidebar/components/global_search/command_palette/command_palette_items.vue @@ -5,10 +5,11 @@ import { GlDisclosureDropdownGroup, GlLoadingIcon } from '@gitlab/ui'; import * as Sentry from '~/sentry/sentry_browser_wrapper'; import axios from '~/lib/utils/axios_utils'; import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants'; -import Tracking from '~/tracking'; +import Tracking, { InternalEvents } from '~/tracking'; import { logError } from '~/lib/logger'; import { getFormattedItem } from '../utils'; +import { EVENT_CLICK_PROJECT_SETTING_IN_COMMAND_PALETTE } from '../tracking_constants'; import { COMMON_HANDLES, COMMAND_HANDLE, @@ -27,6 +28,8 @@ import { import SearchItem from './search_item.vue'; import { commandMapper, linksReducer, autocompleteQuery, fileMapper } from './utils'; +const trackingMixin = InternalEvents.mixin(); + export default { name: 'CommandPaletteItems', components: { @@ -34,7 +37,7 @@ export default { GlLoadingIcon, SearchItem, }, - mixins: [Tracking.mixin()], + mixins: [Tracking.mixin(), trackingMixin], inject: [ 'commandPaletteCommands', 'commandPaletteLinks', @@ -261,6 +264,19 @@ export default { this.loading = false; } }, + trackingCommands({ text: command }) { + if (!this.isCommandMode || !this.searchContext.project?.id) { + return; + } + const isSettings = this.settings.some((setting) => setting.text === command); + if (!isSettings) { + return; + } + + this.trackEvent(EVENT_CLICK_PROJECT_SETTING_IN_COMMAND_PALETTE, { + label: command, + }); + }, }, }; @@ -276,6 +292,7 @@ export default { :group="group" bordered :class="{ '!gl-mt-0': index === 0 }" + @action="trackingCommands" >