diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 5428964b1ce..00000000000 --- a/.eslintignore +++ /dev/null @@ -1,13 +0,0 @@ -/app/assets/javascripts/locale/**/app.js -/builds/ -/coverage/ -/coverage-frontend/ -/node_modules/ -/public/ -/tmp/ -/vendor/ -/sitespeed-result/ -/fixtures/**/*.graphql -# Storybook build artifacts -/storybook/public -spec/fixtures/**/*.graphql diff --git a/.eslintrc.yml b/.eslintrc.yml deleted file mode 100644 index 8a6f53d7b5a..00000000000 --- a/.eslintrc.yml +++ /dev/null @@ -1,318 +0,0 @@ -extends: - - plugin:@gitlab/default - - plugin:@gitlab/i18n - - plugin:no-jquery/slim - - plugin:no-jquery/deprecated-3.4 - - plugin:no-unsanitized/recommended-legacy - - ./tooling/eslint-config/conditionally_ignore.js -globals: - __webpack_public_path__: true - gl: false - gon: false - localStorage: false - IS_EE: false -plugins: - - no-jquery - - local-rules -settings: - import/resolver: - webpack: - config: './config/webpack.config.js' -rules: - import/no-commonjs: error - import/no-default-export: off - no-underscore-dangle: - - error - - allow: - - __ - - _links - import/no-unresolved: - - error - - ignore: - # In FOSS, these import paths are rewritten using - # NormalModuleReplacementPlugin, which import/no-unresolved doesn't - # consider. See - # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89831. - - '^(ee|jh)_component/' - lines-between-class-members: off - # all offenses of no-jquery/no-animate-toggle are false positives ( $toast.show() ) - no-jquery/no-animate-toggle: off - no-jquery/no-event-shorthand: off - no-jquery/no-serialize: error - promise/always-return: off - promise/no-callback-in-promise: off - '@gitlab/no-global-event-off': error - '@gitlab/vue-no-new-non-primitive-in-template': - - error - - allowNames: - - 'class(es)?$' - - '^style$' - - '^to$' - - '^$' - - '^variables$' - - 'attrs?$' - '@gitlab/vue-no-undef-apollo-properties': error - '@gitlab/tailwind-no-interpolation': error - '@gitlab/vue-tailwind-no-interpolation': error - no-param-reassign: - - error - - props: true - ignorePropertyModificationsFor: - - acc - - accumulator - - el - - element - - state - ignorePropertyModificationsForRegex: - - '^draft' - import/order: - - error - - groups: - - builtin - - external - - internal - - parent - - sibling - - index - pathGroups: - - pattern: ~/** - group: internal - - pattern: emojis/** - group: internal - - pattern: '{ee_,jh_,}empty_states/**' - group: internal - - pattern: '{ee_,jh_,}icons/**' - group: internal - - pattern: '{ee_,jh_,}images/**' - group: internal - - pattern: vendor/** - group: internal - - pattern: shared_queries/** - group: internal - - pattern: '{ee_,}spec/**' - group: internal - - pattern: '{ee_,jh_,}jest/**' - group: internal - - pattern: '{ee_,jh_,any_}else_ce/**' - group: internal - - pattern: ee/** - group: internal - - pattern: '{ee_,jh_,}component/**' - group: internal - - pattern: jh_else_ee/** - group: internal - - pattern: jh/** - group: internal - - pattern: '{test_,}helpers/**' - group: internal - - pattern: test_fixtures/** - group: internal - alphabetize: - order: ignore - 'no-restricted-syntax': - - error - - selector: ImportSpecifier[imported.name='GlSkeletonLoading'] - message: 'Migrate to GlSkeletonLoader, or import GlDeprecatedSkeletonLoading.' - - selector: ImportSpecifier[imported.name='GlSafeHtmlDirective'] - message: 'Use directive at ~/vue_shared/directives/safe_html.js instead.' - - selector: Literal[value=/docs.gitlab.+\u002Fee/] - message: 'No hard coded url, use `DOCS_URL_IN_EE_DIR` in `jh_else_ce/lib/utils/url_utility`' - - selector: TemplateElement[value.cooked=/docs.gitlab.+\u002Fee/] - message: 'No hard coded url, use `DOCS_URL_IN_EE_DIR` in `jh_else_ce/lib/utils/url_utility`' - - selector: Literal[value=/(?=.*docs.gitlab.*)(?!.*\u002Fee\b.*)/] - message: 'No hard coded url, use `DOCS_URL` in `jh_else_ce/lib/utils/url_utility`' - - selector: TemplateElement[value.cooked=/(?=.*docs.gitlab.*)(?!.*\u002Fee\b.*)/] - message: 'No hard coded url, use `DOCS_URL` in `jh_else_ce/lib/utils/url_utility`' - - selector: Literal[value=/(?=.*about.gitlab.*)(?!.*\u002Fblog\b.*)/] - message: 'No hard coded url, use `PROMO_URL` in `jh_else_ce/lib/utils/url_utility`' - - selector: TemplateElement[value.cooked=/(?=.*about.gitlab.*)(?!.*\u002Fblog\b.*)/] - message: 'No hard coded url, use `PROMO_URL` in `jh_else_ce/lib/utils/url_utility`' - - selector: TemplateLiteral[expressions.0.name=DOCS_URL] > TemplateElement[value.cooked=/\u002Fjh|\u002Fee/] - message: '`/ee` or `/jh` path found in docs url, use `DOCS_URL_IN_EE_DIR` in `jh_else_ce/lib/utils/url_utility`' - # This can be removed once GitLab is on Vue 3 - - selector: MemberExpression[object.type='ThisExpression'][property.name=/(\$delete|\$set)/] - message: "Vue 2's set/delete methods are not available in Vue 3. Create/assign new objects with the desired properties instead." - no-restricted-properties: - - error - - object: window - property: open - message: 'Use `visitUrl` in `jh_else_ce/lib/utils/url_utility` to avoid cross-site leaks.' - # This can be removed once GitLab is on Vue 3 - - object: vm - property: $delete - message: "Vue 2's set/delete methods are not available in Vue 3. Create/assign new objects with the desired properties instead." - # This can be removed once GitLab is on Vue 3 - - object: Vue - property: delete - message: "Vue 2's set/delete methods are not available in Vue 3. Create/assign new objects with the desired properties instead." - # This can be removed once GitLab is on Vue 3 - - object: vm - property: $set - message: "Vue 2's set/delete methods are not available in Vue 3. Create/assign new objects with the desired properties instead." - # This can be removed once GitLab is on Vue 3 - - object: Vue - property: set - message: "Vue 2's set/delete methods are not available in Vue 3. Create/assign new objects with the desired properties instead." - no-restricted-imports: - - error - - paths: - - name: mousetrap - message: 'Import { Mousetrap } from ~/lib/mousetrap instead.' - - name: vuex - message: 'See our documentation on "Migrating from VueX" for tips on how to avoid adding new VueX stores.' - - name: '@sentry/browser' - message: Use "import * as Sentry from '~/sentry/sentry_browser_wrapper';" instead - patterns: - - group: ['react', 'react-dom/*'] - message: We do not allow usage of React in our codebase except for the graphql_explorer - unicorn/prefer-dom-node-dataset: - - error - no-unsanitized/method: - - error - - escape: - methods: ['sanitize'] - no-unsanitized/property: - - error - - escape: - methods: ['sanitize'] - # This rule will be enabled later. - unicorn/no-array-callback-reference: off - vue/no-undef-components: - - error - - ignorePatterns: - - '^router-link$' - - '^router-view$' - - '^gl-emoji$' - local-rules/require-valid-help-page-path: 'error' - local-rules/vue-require-valid-help-page-link-component: 'error' -overrides: - - files: - - '{,ee/,jh/}spec/frontend*/**/*' - rules: - '@gitlab/require-i18n-strings': off - '@gitlab/no-runtime-template-compiler': off - '@gitlab/tailwind-no-interpolation': off - '@gitlab/vue-tailwind-no-interpolation': off - 'require-await': error - 'import/no-dynamic-require': off - 'no-import-assign': off - 'no-restricted-syntax': - - error - - selector: CallExpression[callee.object.name=/(wrapper|vm)/][callee.property.name="setData"] - message: 'Avoid using "setData" on VTU wrapper' - - selector: MemberExpression[object.type!='ThisExpression'][property.type='Identifier'][property.name='$nextTick'] - message: 'Using $nextTick from a component instance is discouraged. Import nextTick directly from the Vue package.' - - selector: Identifier[name='setImmediate'] - message: 'Prefer explicit waitForPromises (or equivalent), or jest.runAllTimers (or equivalent) to vague setImmediate calls.' - - selector: ImportSpecifier[imported.name='GlSkeletonLoading'] - message: 'Migrate to GlSkeletonLoader, or import GlDeprecatedSkeletonLoading.' - - selector: CallExpression[arguments.length=1][arguments.0.type='Literal'] CallExpression[callee.property.name='toBe'] CallExpression[callee.property.name='attributes'][arguments.length=1][arguments.0.value='disabled'] - message: Avoid asserting disabled attribute exact value, because Vue.js 2 and Vue.js 3 renders it differently. Use toBeDefined / toBeUndefined instead - - selector: MemberExpression[object.object.name='Vue'][object.property.name='config'][property.name='errorHandler'] - message: 'Use setErrorHandler/resetVueErrorHandler from helpers/set_vue_error_handler.js instead.' - - selector: Literal[value=/docs.gitlab.+\u002Fee/] - message: 'No hard coded url, use `DOCS_URL_IN_EE_DIR` in `jh_else_ce/lib/utils/url_utility`' - - selector: TemplateElement[value.cooked=/docs.gitlab.+\u002Fee/] - message: 'No hard coded url, use `DOCS_URL_IN_EE_DIR` in `jh_else_ce/lib/utils/url_utility`' - - selector: Literal[value=/(?=.*docs.gitlab.*)(?!.*\u002Fee\b.*)/] - message: 'No hard coded url, use `DOCS_URL` in `jh_else_ce/lib/utils/url_utility`' - - selector: TemplateElement[value.cooked=/(?=.*docs.gitlab.*)(?!.*\u002Fee\b.*)/] - message: 'No hard coded url, use `DOCS_URL` in `jh_else_ce/lib/utils/url_utility`' - - selector: Literal[value=/(?=.*about.gitlab.*)(?!.*\u002Fblog\b.*)/] - message: 'No hard coded url, use `PROMO_URL` in `jh_else_ce/lib/utils/url_utility`' - - selector: TemplateElement[value.cooked=/(?=.*about.gitlab.*)(?!.*\u002Fblog\b.*)/] - message: 'No hard coded url, use `PROMO_URL` in `jh_else_ce/lib/utils/url_utility`' - - selector: TemplateLiteral[expressions.0.name=DOCS_URL] > TemplateElement[value.cooked=/\u002Fjh|\u002Fee/] - message: '`/ee` or `/jh` path found in docs url, use `DOCS_URL_IN_EE_DIR` in `jh_else_ce/lib/utils/url_utility`' - # This can be removed once GitLab is on Vue 3 - - selector: CallExpression[callee.property.name=/(\$delete|\$set)/] - message: "Vue 2's set/delete methods are not available in Vue 3. Create/assign new objects with the desired properties instead." - no-restricted-properties: - - error - # This can be removed once GitLab is on Vue 3 - - object: Vue - property: delete - message: "Vue 2's set/delete methods are not available in Vue 3. Create/assign new objects with the desired properties instead." - # This can be removed once GitLab is on Vue 3 - - object: Vue - property: set - message: "Vue 2's set/delete methods are not available in Vue 3. Create/assign new objects with the desired properties instead." - no-unsanitized/method: off - no-unsanitized/property: off - local-rules/require-valid-help-page-path: off - local-rules/vue-require-valid-help-page-link-component: off - no-restricted-imports: - - error - - paths: - - name: mousetrap - message: 'Import { Mousetrap } from ~/lib/mousetrap instead.' - - name: vuex - message: 'See our documentation on "Migrating from VueX" for tips on how to avoid adding new VueX stores.' - - name: '@sentry/browser' - message: Use "import * as Sentry from '~/sentry/sentry_browser_wrapper';" instead - - name: ~/locale - importNames: - - __ - - s__ - message: 'Do not externalize strings in specs: https://docs.gitlab.com/ee/development/i18n/externalization.html#test-files-jest' - - files: - - 'config/**/*' - - 'scripts/**/*' - - '*.config.js' - - '*.config.*.js' - - 'jest_resolver.js' - rules: - '@gitlab/require-i18n-strings': off - import/no-extraneous-dependencies: off - import/no-commonjs: off - import/no-nodejs-modules: off - filenames/match-regex: off - no-console: off - - files: - - '*.stories.js' - rules: - filenames/match-regex: off - '@gitlab/require-i18n-strings': off - - files: - - '*.graphql' - plugins: - - '@graphql-eslint' - parserOptions: - parser: '@graphql-eslint/eslint-plugin' - operations: '{,ee/,jh/}app/**/*.graphql' - schema: './tmp/tests/graphql/gitlab_schema_apollo.graphql' - rules: - filenames/match-regex: off - spaced-comment: off - # TODO: We need a way to include this rule + support ee_else_ce fragments - #'@graphql-eslint/unique-fragment-name': error - # TODO: Uncomment these rules when then `schema` is available - #'@graphql-eslint/fragments-on-composite-type': error - #'@graphql-eslint/known-argument-names': error - #'@graphql-eslint/known-type-names': error - '@graphql-eslint/no-anonymous-operations': error - '@graphql-eslint/unique-operation-name': error - '@graphql-eslint/require-id-when-available': error - '@graphql-eslint/no-unused-variables': error - '@graphql-eslint/no-unused-fragments': error - '@graphql-eslint/no-duplicate-fields': error - - files: - - '{,ee/}spec/contracts/consumer/**/*' - rules: - '@gitlab/require-i18n-strings': off - - files: - - 'app/assets/javascripts/projects/settings/branch_rules/queries/branch_rules_details.query.graphql' - - 'app/assets/javascripts/projects/settings/repository/branch_rules/graphql/mutations/create_branch_rule.mutation.graphql' - - 'app/assets/javascripts/projects/settings/repository/branch_rules/graphql/queries/branch_rules.query.graphql' - - 'ee/app/assets/javascripts/projects/settings/branch_rules/queries/branch_rules_details.query.graphql' - - 'ee/app/assets/javascripts/projects/settings/repository/branch_rules/graphql/queries/branch_rules.query.graphql' - rules: - '@graphql-eslint/require-id-when-available': off - - files: - - '{,spec/}tooling/**/*' - rules: - 'no-undef': off - 'import/no-commonjs': off - 'import/no-extraneous-dependencies': off - 'no-restricted-syntax': off - '@gitlab/require-i18n-strings': off diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 729f5967193..9f779e6bbeb 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -473,7 +473,8 @@ # Code patterns + .ci-patterns .code-patterns: &code-patterns - - ".{eslintrc.yml,eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" + - ".{gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" + - "eslint.config.mjs" - ".browserslistrc" - ".stylelintrc" - "{,ee/,jh/}{app,bin,config,db,elastic,generator_templates,gems,haml_lint,lib,locale,public,scripts,sidekiq_cluster,storybook,symbol,vendor}/**/*" @@ -501,7 +502,8 @@ # .code-patterns + .backstage-patterns .code-backstage-patterns: &code-backstage-patterns - - ".{eslintrc.yml,eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" + - ".{gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" + - "eslint.config.mjs" - ".browserslistrc" - ".stylelintrc" - "{,ee/,jh/}{app,bin,config,db,elastic,generator_templates,gems,haml_lint,lib,locale,public,scripts,sidekiq_cluster,storybook,symbol,vendor}/**/*" @@ -536,7 +538,8 @@ # .code-patterns + .qa-patterns .code-qa-patterns: &code-qa-patterns - - ".{eslintrc.yml,eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" + - ".{gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" + - "eslint.config.mjs" - ".browserslistrc" - ".stylelintrc" - "{,ee/,jh/}{app,bin,config,db,elastic,generator_templates,gems,haml_lint,lib,locale,public,scripts,sidekiq_cluster,storybook,symbol,vendor}/**/*" @@ -566,7 +569,8 @@ # .code-patterns + .backstage-patterns + .qa-patterns .code-backstage-qa-patterns: &code-backstage-qa-patterns - - ".{eslintrc.yml,eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" + - ".{gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" + - "eslint.config.mjs" - ".browserslistrc" - ".stylelintrc" - "{,ee/,jh/}{app,bin,config,db,elastic,generator_templates,gems,haml_lint,lib,locale,public,scripts,sidekiq_cluster,storybook,symbol,vendor}/**/*" @@ -614,7 +618,8 @@ - ".stylelintrc" - "Dockerfile.assets" - "vendor/assets/**/*" - - ".{eslintrc.yml,eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" + - ".{gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" + - "eslint.config.mjs" - "*_VERSION" - "{,jh/}Gemfile{,.lock}" - "{,jh/}Gemfile.next{,.lock}" diff --git a/.rubocop_todo/lint/void.yml b/.rubocop_todo/lint/void.yml index c1b6f44f369..afb43b7e250 100644 --- a/.rubocop_todo/lint/void.yml +++ b/.rubocop_todo/lint/void.yml @@ -3,5 +3,4 @@ Lint/Void: Details: grace period Exclude: - - 'ee/lib/gitlab/llm/ai_message.rb' - 'spec/lib/gitlab/import_export/json/streaming_serializer_spec.rb' diff --git a/.rubocop_todo/rails/inverse_of.yml b/.rubocop_todo/rails/inverse_of.yml index fffabfb92f1..c8dbb9b7a0e 100644 --- a/.rubocop_todo/rails/inverse_of.yml +++ b/.rubocop_todo/rails/inverse_of.yml @@ -61,7 +61,6 @@ Rails/InverseOf: - 'ee/app/models/ee/service_desk_setting.rb' - 'ee/app/models/ee/user.rb' - 'ee/app/models/elastic/reindexing_subtask.rb' - - 'ee/app/models/elastic/reindexing_task.rb' - 'ee/app/models/geo/event.rb' - 'ee/app/models/geo/event_log.rb' - 'ee/app/models/geo/job_artifact_registry.rb' diff --git a/Gemfile b/Gemfile index 7785a13d7b9..647630e9471 100644 --- a/Gemfile +++ b/Gemfile @@ -387,9 +387,9 @@ gem 'gitlab-license', '~> 2.5', feature_category: :shared gem 'rack-attack', '~> 6.7.0' # rubocop:todo Gemfile/MissingFeatureCategory # Sentry integration -gem 'sentry-ruby', '~> 5.19.0', feature_category: :observability -gem 'sentry-rails', '~> 5.19.0', feature_category: :observability -gem 'sentry-sidekiq', '~> 5.19.0', feature_category: :observability +gem 'sentry-ruby', '~> 5.21.0', feature_category: :observability +gem 'sentry-rails', '~> 5.21.0', feature_category: :observability +gem 'sentry-sidekiq', '~> 5.21.0', feature_category: :observability # PostgreSQL query parsing # @@ -582,7 +582,7 @@ group :test do gem 'shoulda-matchers', '~> 5.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory gem 'email_spec', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory - gem 'webmock', '~> 3.23.0', feature_category: :shared + gem 'webmock', '~> 3.24.0', feature_category: :shared gem 'rails-controller-testing' # rubocop:todo Gemfile/MissingFeatureCategory gem 'concurrent-ruby', '~> 1.1' # rubocop:todo Gemfile/MissingFeatureCategory gem 'test-prof', '~> 1.4.0', feature_category: :tooling diff --git a/Gemfile.checksum b/Gemfile.checksum index 252c2237df6..00b830e04be 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -661,11 +661,11 @@ {"name":"sawyer","version":"0.9.2","platform":"ruby","checksum":"fa3a72d62a4525517b18857ddb78926aab3424de0129be6772a8e2ba240e7aca"}, {"name":"sd_notify","version":"0.1.1","platform":"ruby","checksum":"cbc7ac6caa7cedd26b30a72b5eeb6f36050dc0752df263452ea24fb5a4ad3131"}, {"name":"seed-fu","version":"2.3.7","platform":"ruby","checksum":"f19673443e9af799b730e3d4eca6a89b39e5a36825015dffd00d02ea3365cf74"}, -{"name":"selenium-webdriver","version":"4.23.0","platform":"ruby","checksum":"490aeddee879cfea58a4db6628338d60a905bc56cd5e1a60dfbaa9090a19b801"}, +{"name":"selenium-webdriver","version":"4.25.0","platform":"ruby","checksum":"7e11abf2b0fd56df61d98b6d59d621781cf103261d941df3510837547bd4a0d5"}, {"name":"semver_dialects","version":"3.4.3","platform":"ruby","checksum":"ae3ea99f7806693ab031df3121017c102f1a35f4fc2524674055cb446fb9cc82"}, -{"name":"sentry-rails","version":"5.19.0","platform":"ruby","checksum":"d4ad5323feea8e876f9feb2f50b126a3be3b4f6e137d37c360c31d52b6861995"}, -{"name":"sentry-ruby","version":"5.19.0","platform":"ruby","checksum":"0ddf89f246840a5c50df6c68b8eb59ad23ee4adb4a91187a414bb196cee1838b"}, -{"name":"sentry-sidekiq","version":"5.19.0","platform":"ruby","checksum":"1b16ec4b15b35dcbdd182494d612aae7ec5c923a9ed6814aed1b56103feecb80"}, +{"name":"sentry-rails","version":"5.21.0","platform":"ruby","checksum":"b5a943d199aff0d3cb94dbac4eb3e00622dd0c55fd1be0cffd43a7e09f0ad602"}, +{"name":"sentry-ruby","version":"5.21.0","platform":"ruby","checksum":"294e0dd59afce7e08ba22a4e880924345c75c3e858dc8ee23553716793f78629"}, +{"name":"sentry-sidekiq","version":"5.21.0","platform":"ruby","checksum":"6df54ec79238f69d9d4b7647bcd2a192a4702f3a39edffd63a455203430e90e2"}, {"name":"shellany","version":"0.0.1","platform":"ruby","checksum":"0e127a9132698766d7e752e82cdac8250b6adbd09e6c0a7fbbb6f61964fedee7"}, {"name":"shoulda-matchers","version":"5.1.0","platform":"ruby","checksum":"a01d20589989e9653ab4a28c67d9db2b82bcf0a2496cf01d5e1a95a4aaaf5b07"}, {"name":"sidekiq-cron","version":"1.12.0","platform":"ruby","checksum":"6663080a454088bd88773a0da3ae91e554b8a2e8b06cfc629529a83fd1a3096c"}, @@ -767,7 +767,7 @@ {"name":"warning","version":"1.3.0","platform":"ruby","checksum":"23695a5d8e50bd5c46068931b529bee0b28e4982cbcefbe77d867800dde8069e"}, {"name":"webauthn","version":"3.0.0","platform":"ruby","checksum":"3f77d422c2a8a4b31e56cf42f83414bd066e0506e9896936e1730262dc4a20e6"}, {"name":"webfinger","version":"2.1.3","platform":"ruby","checksum":"567a52bde77fb38ca6b67e55db755f988766ec4651c1d24916a65aa70540695c"}, -{"name":"webmock","version":"3.23.1","platform":"ruby","checksum":"0fa738c0767d1c4ec8cc57f6b21998f0c238c8a5b32450df1c847f2767140d95"}, +{"name":"webmock","version":"3.24.0","platform":"ruby","checksum":"be01357f6fc773606337ca79f3ba332b7d52cbe5c27587671abc0572dbec7122"}, {"name":"webrick","version":"1.8.1","platform":"ruby","checksum":"19411ec6912911fd3df13559110127ea2badd0c035f7762873f58afc803e158f"}, {"name":"websocket","version":"1.2.10","platform":"ruby","checksum":"2cc1a4a79b6e63637b326b4273e46adcddf7871caa5dc5711f2ca4061a629fa8"}, {"name":"websocket-driver","version":"0.7.6","platform":"java","checksum":"bc894b9e9d5aee55ac04b61003e1957c4ef411a5a048199587d0499785b505c3"}, diff --git a/Gemfile.lock b/Gemfile.lock index 0ee6e89309d..4bca14c6622 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1694,7 +1694,7 @@ GEM seed-fu (2.3.7) activerecord (>= 3.1) activesupport (>= 3.1) - selenium-webdriver (4.23.0) + selenium-webdriver (4.25.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) @@ -1705,14 +1705,14 @@ GEM pastel (~> 0.8.0) thor (~> 1.3) tty-command (~> 0.10.1) - sentry-rails (5.19.0) + sentry-rails (5.21.0) railties (>= 5.0) - sentry-ruby (~> 5.19.0) - sentry-ruby (5.19.0) + sentry-ruby (~> 5.21.0) + sentry-ruby (5.21.0) bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-sidekiq (5.19.0) - sentry-ruby (~> 5.19.0) + sentry-sidekiq (5.21.0) + sentry-ruby (~> 5.21.0) sidekiq (>= 3.0) shellany (0.0.1) shoulda-matchers (5.1.0) @@ -1930,7 +1930,7 @@ GEM activesupport faraday (~> 2.0) faraday-follow_redirects - webmock (3.23.1) + webmock (3.24.0) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -2272,9 +2272,9 @@ DEPENDENCIES seed-fu (~> 2.3.7) selenium-webdriver (~> 4.21, >= 4.21.1) semver_dialects (~> 3.0) - sentry-rails (~> 5.19.0) - sentry-ruby (~> 5.19.0) - sentry-sidekiq (~> 5.19.0) + sentry-rails (~> 5.21.0) + sentry-ruby (~> 5.21.0) + sentry-sidekiq (~> 5.21.0) shoulda-matchers (~> 5.1.0) sidekiq! sidekiq-cron (~> 1.12.0) @@ -2319,7 +2319,7 @@ DEPENDENCIES vmstat (~> 2.3.0) warning (~> 1.3.0) webauthn (~> 3.0) - webmock (~> 3.23.0) + webmock (~> 3.24.0) webrick (~> 1.8.1) wikicloth (= 0.8.1) yajl-ruby (~> 1.4.3) diff --git a/Gemfile.next.checksum b/Gemfile.next.checksum index e2e2e1f60ae..98ce22d65b0 100644 --- a/Gemfile.next.checksum +++ b/Gemfile.next.checksum @@ -674,11 +674,11 @@ {"name":"sawyer","version":"0.9.2","platform":"ruby","checksum":"fa3a72d62a4525517b18857ddb78926aab3424de0129be6772a8e2ba240e7aca"}, {"name":"sd_notify","version":"0.1.1","platform":"ruby","checksum":"cbc7ac6caa7cedd26b30a72b5eeb6f36050dc0752df263452ea24fb5a4ad3131"}, {"name":"seed-fu","version":"2.3.7","platform":"ruby","checksum":"f19673443e9af799b730e3d4eca6a89b39e5a36825015dffd00d02ea3365cf74"}, -{"name":"selenium-webdriver","version":"4.23.0","platform":"ruby","checksum":"490aeddee879cfea58a4db6628338d60a905bc56cd5e1a60dfbaa9090a19b801"}, +{"name":"selenium-webdriver","version":"4.25.0","platform":"ruby","checksum":"7e11abf2b0fd56df61d98b6d59d621781cf103261d941df3510837547bd4a0d5"}, {"name":"semver_dialects","version":"3.4.3","platform":"ruby","checksum":"ae3ea99f7806693ab031df3121017c102f1a35f4fc2524674055cb446fb9cc82"}, -{"name":"sentry-rails","version":"5.19.0","platform":"ruby","checksum":"d4ad5323feea8e876f9feb2f50b126a3be3b4f6e137d37c360c31d52b6861995"}, -{"name":"sentry-ruby","version":"5.19.0","platform":"ruby","checksum":"0ddf89f246840a5c50df6c68b8eb59ad23ee4adb4a91187a414bb196cee1838b"}, -{"name":"sentry-sidekiq","version":"5.19.0","platform":"ruby","checksum":"1b16ec4b15b35dcbdd182494d612aae7ec5c923a9ed6814aed1b56103feecb80"}, +{"name":"sentry-rails","version":"5.21.0","platform":"ruby","checksum":"b5a943d199aff0d3cb94dbac4eb3e00622dd0c55fd1be0cffd43a7e09f0ad602"}, +{"name":"sentry-ruby","version":"5.21.0","platform":"ruby","checksum":"294e0dd59afce7e08ba22a4e880924345c75c3e858dc8ee23553716793f78629"}, +{"name":"sentry-sidekiq","version":"5.21.0","platform":"ruby","checksum":"6df54ec79238f69d9d4b7647bcd2a192a4702f3a39edffd63a455203430e90e2"}, {"name":"shellany","version":"0.0.1","platform":"ruby","checksum":"0e127a9132698766d7e752e82cdac8250b6adbd09e6c0a7fbbb6f61964fedee7"}, {"name":"shoulda-matchers","version":"5.1.0","platform":"ruby","checksum":"a01d20589989e9653ab4a28c67d9db2b82bcf0a2496cf01d5e1a95a4aaaf5b07"}, {"name":"sidekiq-cron","version":"1.12.0","platform":"ruby","checksum":"6663080a454088bd88773a0da3ae91e554b8a2e8b06cfc629529a83fd1a3096c"}, @@ -782,7 +782,7 @@ {"name":"warning","version":"1.3.0","platform":"ruby","checksum":"23695a5d8e50bd5c46068931b529bee0b28e4982cbcefbe77d867800dde8069e"}, {"name":"webauthn","version":"3.0.0","platform":"ruby","checksum":"3f77d422c2a8a4b31e56cf42f83414bd066e0506e9896936e1730262dc4a20e6"}, {"name":"webfinger","version":"2.1.3","platform":"ruby","checksum":"567a52bde77fb38ca6b67e55db755f988766ec4651c1d24916a65aa70540695c"}, -{"name":"webmock","version":"3.23.1","platform":"ruby","checksum":"0fa738c0767d1c4ec8cc57f6b21998f0c238c8a5b32450df1c847f2767140d95"}, +{"name":"webmock","version":"3.24.0","platform":"ruby","checksum":"be01357f6fc773606337ca79f3ba332b7d52cbe5c27587671abc0572dbec7122"}, {"name":"webrick","version":"1.8.1","platform":"ruby","checksum":"19411ec6912911fd3df13559110127ea2badd0c035f7762873f58afc803e158f"}, {"name":"websocket","version":"1.2.10","platform":"ruby","checksum":"2cc1a4a79b6e63637b326b4273e46adcddf7871caa5dc5711f2ca4061a629fa8"}, {"name":"websocket-driver","version":"0.7.6","platform":"java","checksum":"bc894b9e9d5aee55ac04b61003e1957c4ef411a5a048199587d0499785b505c3"}, diff --git a/Gemfile.next.lock b/Gemfile.next.lock index 8265a43b5bb..c992b5948da 100644 --- a/Gemfile.next.lock +++ b/Gemfile.next.lock @@ -1720,7 +1720,7 @@ GEM seed-fu (2.3.7) activerecord (>= 3.1) activesupport (>= 3.1) - selenium-webdriver (4.23.0) + selenium-webdriver (4.25.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) @@ -1731,14 +1731,14 @@ GEM pastel (~> 0.8.0) thor (~> 1.3) tty-command (~> 0.10.1) - sentry-rails (5.19.0) + sentry-rails (5.21.0) railties (>= 5.0) - sentry-ruby (~> 5.19.0) - sentry-ruby (5.19.0) + sentry-ruby (~> 5.21.0) + sentry-ruby (5.21.0) bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-sidekiq (5.19.0) - sentry-ruby (~> 5.19.0) + sentry-sidekiq (5.21.0) + sentry-ruby (~> 5.21.0) sidekiq (>= 3.0) shellany (0.0.1) shoulda-matchers (5.1.0) @@ -1957,7 +1957,7 @@ GEM activesupport faraday (~> 2.0) faraday-follow_redirects - webmock (3.23.1) + webmock (3.24.0) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -2299,9 +2299,9 @@ DEPENDENCIES seed-fu (~> 2.3.7) selenium-webdriver (~> 4.21, >= 4.21.1) semver_dialects (~> 3.0) - sentry-rails (~> 5.19.0) - sentry-ruby (~> 5.19.0) - sentry-sidekiq (~> 5.19.0) + sentry-rails (~> 5.21.0) + sentry-ruby (~> 5.21.0) + sentry-sidekiq (~> 5.21.0) shoulda-matchers (~> 5.1.0) sidekiq! sidekiq-cron (~> 1.12.0) @@ -2346,7 +2346,7 @@ DEPENDENCIES vmstat (~> 2.3.0) warning (~> 1.3.0) webauthn (~> 3.0) - webmock (~> 3.23.0) + webmock (~> 3.24.0) webrick (~> 1.8.1) wikicloth (= 0.8.1) yajl-ruby (~> 1.4.3) diff --git a/app/assets/javascripts/vue_shared/components/chronic_duration_input.vue b/app/assets/javascripts/admin/application_settings/runner_token_expiration/components/chronic_duration_input.vue similarity index 100% rename from app/assets/javascripts/vue_shared/components/chronic_duration_input.vue rename to app/assets/javascripts/admin/application_settings/runner_token_expiration/components/chronic_duration_input.vue diff --git a/app/assets/javascripts/admin/application_settings/runner_token_expiration/components/expiration_intervals.vue b/app/assets/javascripts/admin/application_settings/runner_token_expiration/components/expiration_intervals.vue index 371a26d2664..695806a5fa6 100644 --- a/app/assets/javascripts/admin/application_settings/runner_token_expiration/components/expiration_intervals.vue +++ b/app/assets/javascripts/admin/application_settings/runner_token_expiration/components/expiration_intervals.vue @@ -1,7 +1,7 @@ + + diff --git a/app/assets/javascripts/packages_and_registries/package_registry/components/list/packages_list.vue b/app/assets/javascripts/packages_and_registries/package_registry/components/list/packages_list.vue index b93ea37e7dc..3dcaeb66a66 100644 --- a/app/assets/javascripts/packages_and_registries/package_registry/components/list/packages_list.vue +++ b/app/assets/javascripts/packages_and_registries/package_registry/components/list/packages_list.vue @@ -1,11 +1,10 @@ @@ -205,22 +149,11 @@ export default {