diff --git a/.eslint_todo/vue-no-unused-properties.mjs b/.eslint_todo/vue-no-unused-properties.mjs index 24d95aeef02..1e8eeb99da9 100644 --- a/.eslint_todo/vue-no-unused-properties.mjs +++ b/.eslint_todo/vue-no-unused-properties.mjs @@ -414,10 +414,6 @@ export default { 'ee/app/assets/javascripts/sidebar/components/incidents/escalation_status.vue', 'ee/app/assets/javascripts/sidebar/components/weight/sidebar_weight_widget.vue', 'ee/app/assets/javascripts/tracing/details/tracing_details.vue', - 'ee/app/assets/javascripts/usage_quotas/code_suggestions/components/code_suggestions_info_card.vue', - 'ee/app/assets/javascripts/usage_quotas/code_suggestions/components/search_and_sort_bar.vue', - 'ee/app/assets/javascripts/usage_quotas/seats/components/statistics_seats_card.vue', - 'ee/app/assets/javascripts/usage_quotas/transfer/components/usage_by_month.vue', 'ee/app/assets/javascripts/vue_merge_request_widget/components/blocking_merge_requests/blocking_merge_request_body.vue', 'ee/app/assets/javascripts/vue_merge_request_widget/components/blocking_merge_requests/blocking_merge_requests_report.vue', 'ee/app/assets/javascripts/vue_merge_request_widget/components/checks/not_approved.vue', diff --git a/Gemfile b/Gemfile index ed215135628..b664712f390 100644 --- a/Gemfile +++ b/Gemfile @@ -315,7 +315,7 @@ gem 're2', '~> 2.15', feature_category: :shared # Misc -gem 'semver_dialects', '~> 3.6', feature_category: :software_composition_analysis +gem 'semver_dialects', '~> 3.7', feature_category: :software_composition_analysis gem 'version_sorter', '~> 2.3', feature_category: :shared gem 'csv_builder', path: 'gems/csv_builder', feature_category: :shared diff --git a/Gemfile.checksum b/Gemfile.checksum index 03e35af21c8..32dbeaf8141 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -692,7 +692,7 @@ {"name":"securerandom","version":"0.4.1","platform":"ruby","checksum":"cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1"}, {"name":"seed-fu","version":"2.3.9","platform":"ruby","checksum":"6d902d12dc1b88a16d487506baacc93b3a92e3671fdd603110d1600d35fbf478"}, {"name":"selenium-webdriver","version":"4.27.0","platform":"ruby","checksum":"8821f4ad60b935cfcdc5954c0a6642d894e936250aece8bf37a6fcbebe5eb6e0"}, -{"name":"semver_dialects","version":"3.6.0","platform":"ruby","checksum":"bb8a78037c6c748114267d0e00f0a19e2701a3837c00cc37336e8224bc8473a3"}, +{"name":"semver_dialects","version":"3.7.0","platform":"ruby","checksum":"6110b05266f7c8ce7794869d4d9dd3e15c3e5878eb1ffe5f0cea00060141dd1e"}, {"name":"sentry-rails","version":"5.22.1","platform":"ruby","checksum":"23227608dc0e202de8cf96840a591e52bd7d6967ebaed6eb2da50a7d2a2d3fb7"}, {"name":"sentry-ruby","version":"5.22.1","platform":"ruby","checksum":"ed77bdd76da7a4c6a3de43dc6d19d3c0412b2675b014a2654bc5bafd4d5b3289"}, {"name":"sentry-sidekiq","version":"5.22.1","platform":"ruby","checksum":"bd7a3f915e58e13ea67251d9a458667fc4bee6dfbbd12614c47daa239e822a89"}, diff --git a/Gemfile.lock b/Gemfile.lock index a48b3eadc88..fa7b604ed7a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1781,7 +1781,7 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) - semver_dialects (3.6.0) + semver_dialects (3.7.0) deb_version (~> 1.0.1) pastel (~> 0.8.0) thor (~> 1.3) @@ -2370,7 +2370,7 @@ DEPENDENCIES sd_notify (~> 0.1.0) seed-fu (~> 2.3.7) selenium-webdriver (~> 4.21, >= 4.21.1) - semver_dialects (~> 3.6) + semver_dialects (~> 3.7) sentry-rails (~> 5.22.0) sentry-ruby (~> 5.22.0) sentry-sidekiq (~> 5.22.0) diff --git a/Gemfile.next.checksum b/Gemfile.next.checksum index 03e35af21c8..32dbeaf8141 100644 --- a/Gemfile.next.checksum +++ b/Gemfile.next.checksum @@ -692,7 +692,7 @@ {"name":"securerandom","version":"0.4.1","platform":"ruby","checksum":"cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1"}, {"name":"seed-fu","version":"2.3.9","platform":"ruby","checksum":"6d902d12dc1b88a16d487506baacc93b3a92e3671fdd603110d1600d35fbf478"}, {"name":"selenium-webdriver","version":"4.27.0","platform":"ruby","checksum":"8821f4ad60b935cfcdc5954c0a6642d894e936250aece8bf37a6fcbebe5eb6e0"}, -{"name":"semver_dialects","version":"3.6.0","platform":"ruby","checksum":"bb8a78037c6c748114267d0e00f0a19e2701a3837c00cc37336e8224bc8473a3"}, +{"name":"semver_dialects","version":"3.7.0","platform":"ruby","checksum":"6110b05266f7c8ce7794869d4d9dd3e15c3e5878eb1ffe5f0cea00060141dd1e"}, {"name":"sentry-rails","version":"5.22.1","platform":"ruby","checksum":"23227608dc0e202de8cf96840a591e52bd7d6967ebaed6eb2da50a7d2a2d3fb7"}, {"name":"sentry-ruby","version":"5.22.1","platform":"ruby","checksum":"ed77bdd76da7a4c6a3de43dc6d19d3c0412b2675b014a2654bc5bafd4d5b3289"}, {"name":"sentry-sidekiq","version":"5.22.1","platform":"ruby","checksum":"bd7a3f915e58e13ea67251d9a458667fc4bee6dfbbd12614c47daa239e822a89"}, diff --git a/Gemfile.next.lock b/Gemfile.next.lock index a48b3eadc88..fa7b604ed7a 100644 --- a/Gemfile.next.lock +++ b/Gemfile.next.lock @@ -1781,7 +1781,7 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) - semver_dialects (3.6.0) + semver_dialects (3.7.0) deb_version (~> 1.0.1) pastel (~> 0.8.0) thor (~> 1.3) @@ -2370,7 +2370,7 @@ DEPENDENCIES sd_notify (~> 0.1.0) seed-fu (~> 2.3.7) selenium-webdriver (~> 4.21, >= 4.21.1) - semver_dialects (~> 3.6) + semver_dialects (~> 3.7) sentry-rails (~> 5.22.0) sentry-ruby (~> 5.22.0) sentry-sidekiq (~> 5.22.0) diff --git a/app/assets/javascripts/projects/settings/repository/branch_rules/app.vue b/app/assets/javascripts/projects/settings/repository/branch_rules/app.vue index 051a2d39bbd..5aeabbace7e 100644 --- a/app/assets/javascripts/projects/settings/repository/branch_rules/app.vue +++ b/app/assets/javascripts/projects/settings/repository/branch_rules/app.vue @@ -206,7 +206,7 @@ export default { :id="$options.modalId" :ref="$options.modalId" :title="$options.i18n.createBranchRule" - :action-primary-text="$options.i18n.createProtectedBranch" + :action-primary-text="$options.i18n.createBranchRule" @primary="addBranchRule({ name: $event })" /> import('ee_component/ai/components/ai_genie.vue'), }, - mixins: [getRefMixin, highlightMixin, glFeatureFlagMixin()], + mixins: [getRefMixin, highlightMixin, glFeatureFlagMixin(), trackingMixin], inject: { originalBranch: { default: '', @@ -95,6 +99,13 @@ export default { const urlHash = getLocationHash(); // If there is a code line hash in the URL we render with the simple viewer const useSimpleViewer = usePlain || urlHash?.startsWith('L') || !this.hasRichViewer; + if (this.isTooLarge) { + this.trackEvent(EVENT_FILE_SIZE_LIMIT_EXCEEDED, { + label: this.blobInfo.language, + property: this.blobInfo.size, + }); + } + if (this.isUnsupportedLanguage(this.blobInfo.language) && this.isTooLarge) return; this.initHighlightWorker(this.blobInfo, this.isUsingLfs); this.switchViewer(useSimpleViewer ? SIMPLE_BLOB_VIEWER : RICH_BLOB_VIEWER); // By default, if present, use the rich viewer to render diff --git a/app/assets/javascripts/repository/constants.js b/app/assets/javascripts/repository/constants.js index 3432eca986d..86123066243 100644 --- a/app/assets/javascripts/repository/constants.js +++ b/app/assets/javascripts/repository/constants.js @@ -101,3 +101,4 @@ export const POLLING_INTERVAL_BACKOFF = 2; export const CONFLICTS_MODAL_ID = 'fork-sync-conflicts-modal'; export const FORK_UPDATED_EVENT = 'fork:updated'; +export const EVENT_FILE_SIZE_LIMIT_EXCEEDED = 'repository_file_size_limit_exceeded'; diff --git a/app/assets/javascripts/usage_quotas/components/sectioned_percentage_bar.vue b/app/assets/javascripts/usage_quotas/components/sectioned_percentage_bar.vue index 1d4bf214825..28b615f226b 100644 --- a/app/assets/javascripts/usage_quotas/components/sectioned_percentage_bar.vue +++ b/app/assets/javascripts/usage_quotas/components/sectioned_percentage_bar.vue @@ -1,5 +1,6 @@