Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-12-19 06:21:36 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-12-19 06:21:36 +0300
commiteba7329faa534bc0ea9332e3278f2a74f61a79dc (patch)
tree39b4d3d4b8d77ebb6766e689d8b9210f0ea643d1
parentf3b2c536778dcd0981134c702d97c6e4047b64d4 (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.gitlab/merge_request_templates/Default.md11
-rw-r--r--.gitlab/merge_request_templates/New Version of gitlab-styles.md5
-rw-r--r--app/assets/javascripts/ci/runner/group_runners/group_runners_app.vue2
-rw-r--r--app/helpers/merge_requests_helper.rb2
-rw-r--r--app/models/container_repository.rb9
-rw-r--r--app/services/auth/container_registry_authentication_service.rb2
-rw-r--r--app/services/import/gitlab_projects/create_project_service.rb2
-rw-r--r--app/views/projects/merge_requests/_code_dropdown.html.haml2
-rw-r--r--app/workers/concerns/gitlab/github_import/object_importer.rb1
-rw-r--r--app/workers/concerns/gitlab/github_import/queue.rb2
-rw-r--r--app/workers/concerns/gitlab/github_import/stage_methods.rb3
-rw-r--r--app/workers/gitlab/github_import/advance_stage_worker.rb9
-rw-r--r--app/workers/gitlab/github_import/refresh_import_jid_worker.rb2
-rw-r--r--app/workers/gitlab/github_import/stage/finish_import_worker.rb1
-rw-r--r--app/workers/gitlab/github_import/stage/import_attachments_worker.rb1
-rw-r--r--app/workers/gitlab/github_import/stage/import_base_data_worker.rb1
-rw-r--r--app/workers/gitlab/github_import/stage/import_collaborators_worker.rb1
-rw-r--r--app/workers/gitlab/github_import/stage/import_issue_events_worker.rb1
-rw-r--r--app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb1
-rw-r--r--app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb1
-rw-r--r--app/workers/gitlab/github_import/stage/import_notes_worker.rb1
-rw-r--r--app/workers/gitlab/github_import/stage/import_protected_branches_worker.rb1
-rw-r--r--app/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker.rb1
-rw-r--r--app/workers/gitlab/github_import/stage/import_pull_requests_review_requests_worker.rb1
-rw-r--r--app/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker.rb1
-rw-r--r--app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb1
-rw-r--r--app/workers/gitlab/github_import/stage/import_repository_worker.rb1
-rw-r--r--db/docs/batched_background_migrations.yml2
-rw-r--r--doc/ci/jobs/job_artifacts.md26
-rw-r--r--doc/development/code_review.md2
-rw-r--r--doc/development/contributing/merge_request_workflow.md2
-rw-r--r--lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml2
-rw-r--r--lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml2
-rw-r--r--lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml2
-rw-r--r--locale/gitlab.pot9
-rw-r--r--package.json2
-rw-r--r--qa/Gemfile2
-rw-r--r--qa/Gemfile.lock4
-rw-r--r--qa/qa/support/ssh.rb2
-rw-r--r--qa/spec/support/ssh_spec.rb4
-rw-r--r--spec/features/merge_request/user_creates_merge_request_spec.rb2
-rw-r--r--spec/features/merge_request/user_edits_merge_request_spec.rb2
-rw-r--r--spec/features/users/signup_spec.rb21
-rw-r--r--spec/frontend/badges/store/actions_spec.js12
-rw-r--r--spec/lib/bulk_imports/pipeline/runner_spec.rb6
-rw-r--r--spec/models/container_repository_spec.rb6
-rw-r--r--spec/requests/api/ci/pipeline_schedules_spec.rb2
-rw-r--r--spec/requests/api/graphql/mutations/container_registry/protection/rule/delete_spec.rb10
-rw-r--r--spec/requests/api/graphql/mutations/packages/protection/rule/delete_spec.rb10
-rw-r--r--spec/requests/api/graphql/mutations/packages/protection/rule/update_spec.rb8
-rw-r--r--spec/requests/api/ml/mlflow/registered_models_spec.rb2
-rw-r--r--spec/requests/api/remote_mirrors_spec.rb2
-rw-r--r--spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb4
-rw-r--r--spec/workers/every_sidekiq_worker_spec.rb30
-rw-r--r--spec/workers/gitlab/github_import/advance_stage_worker_spec.rb4
-rw-r--r--yarn.lock18
56 files changed, 147 insertions, 119 deletions
diff --git a/.gitlab/merge_request_templates/Default.md b/.gitlab/merge_request_templates/Default.md
index 3cb3f6473e6..a396d375ba1 100644
--- a/.gitlab/merge_request_templates/Default.md
+++ b/.gitlab/merge_request_templates/Default.md
@@ -10,6 +10,11 @@ especially important if they didn't participate in the discussion.
%{first_multiline_commit}
+## MR acceptance checklist
+
+**Please evaluate this MR against the [MR acceptance checklist](https://docs.gitlab.com/ee/development/code_review.html#acceptance-checklist).**
+It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
+
## Screenshots or screen recordings
_Screenshots are required for UI changes, and strongly recommended for all other merge requests._
@@ -39,12 +44,6 @@ Example below:
1. Click the `invite members` button.
-->
-## MR acceptance checklist
-
-This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
-* [ ] I have evaluated the [MR acceptance checklist](https://docs.gitlab.com/ee/development/code_review.html#acceptance-checklist) for this MR.
-
<!-- template sourced from https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/merge_request_templates/Default.md -->
/assign me
diff --git a/.gitlab/merge_request_templates/New Version of gitlab-styles.md b/.gitlab/merge_request_templates/New Version of gitlab-styles.md
index 85603f6a944..fa0eecc0e9d 100644
--- a/.gitlab/merge_request_templates/New Version of gitlab-styles.md
+++ b/.gitlab/merge_request_templates/New Version of gitlab-styles.md
@@ -37,9 +37,8 @@ This MR can be reused to upgrade `gitlab-styles` in this project after a new ver
## MR acceptance checklist
-This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
-- [ ] I have evaluated the [MR acceptance checklist](https://docs.gitlab.com/ee/development/code_review.html#acceptance-checklist) for this MR.
+**Please evaluate this MR against the [MR acceptance checklist](https://docs.gitlab.com/ee/development/code_review.html#acceptance-checklist).**
+It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
## After merge
diff --git a/app/assets/javascripts/ci/runner/group_runners/group_runners_app.vue b/app/assets/javascripts/ci/runner/group_runners/group_runners_app.vue
index b5042936b1e..cafac061c12 100644
--- a/app/assets/javascripts/ci/runner/group_runners/group_runners_app.vue
+++ b/app/assets/javascripts/ci/runner/group_runners/group_runners_app.vue
@@ -159,7 +159,7 @@ export default {
search: {
deep: true,
handler() {
- // TODO Implement back button reponse using onpopstate
+ // TODO Implement back button response using onpopstate
// See https://gitlab.com/gitlab-org/gitlab/-/issues/333804
updateHistory({
url: fromSearchToUrl(this.search),
diff --git a/app/helpers/merge_requests_helper.rb b/app/helpers/merge_requests_helper.rb
index e931d95d38a..2f042ea6417 100644
--- a/app/helpers/merge_requests_helper.rb
+++ b/app/helpers/merge_requests_helper.rb
@@ -279,7 +279,7 @@ module MergeRequestsHelper
target_branch = link_to merge_request.target_branch, project_tree_path(merge_request.target_project, merge_request.target_branch), title: merge_request.target_branch, class: 'ref-container gl-display-inline-block gl-text-truncate gl-max-w-26 gl-mx-2'
- safe_format('%{author} • %{source_branch} %{copy_button} ➔ %{target_branch} %{created_at}', author: link_to_author, source_branch: merge_request_source_branch(merge_request), copy_button: copy_button, target_branch: target_branch, created_at: time_ago_with_tooltip(merge_request.created_at, html_class: 'gl-display-inline-block'))
+ _('%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}').html_safe % { author: link_to_author.html_safe, source_branch: merge_request_source_branch(merge_request).html_safe, copy_button: copy_button.html_safe, target_branch: target_branch.html_safe, created_at: time_ago_with_tooltip(merge_request.created_at, html_class: 'gl-display-inline-block').html_safe }
end
def sticky_header_data
diff --git a/app/models/container_repository.rb b/app/models/container_repository.rb
index 6bcfd23e69c..4df92235f50 100644
--- a/app/models/container_repository.rb
+++ b/app/models/container_repository.rb
@@ -618,12 +618,11 @@ class ContainerRepository < ApplicationRecord
self.new(project: path.repository_project, name: path.repository_name)
end
- def self.find_or_create_from_path(path)
- repository = safe_find_or_create_by(
- project: path.repository_project,
+ def self.find_or_create_from_path!(path)
+ ContainerRepository.upsert({
+ project_id: path.repository_project.id,
name: path.repository_name
- )
- return repository if repository.persisted?
+ }, unique_by: %i[project_id name])
find_by_path!(path)
end
diff --git a/app/services/auth/container_registry_authentication_service.rb b/app/services/auth/container_registry_authentication_service.rb
index 7d473f9ed89..f515fdede29 100644
--- a/app/services/auth/container_registry_authentication_service.rb
+++ b/app/services/auth/container_registry_authentication_service.rb
@@ -231,7 +231,7 @@ module Auth
return if path.has_repository?
return unless actions.include?('push')
- ContainerRepository.find_or_create_from_path(path)
+ ContainerRepository.find_or_create_from_path!(path)
end
# Overridden in EE
diff --git a/app/services/import/gitlab_projects/create_project_service.rb b/app/services/import/gitlab_projects/create_project_service.rb
index 1613c4dde25..dc0f24df0cb 100644
--- a/app/services/import/gitlab_projects/create_project_service.rb
+++ b/app/services/import/gitlab_projects/create_project_service.rb
@@ -25,7 +25,7 @@ module Import
# Creates a project with the strategy parameters
#
- # @return [Services::ServiceReponse]
+ # @return [Services::ServiceResponse]
def execute
return error(errors.full_messages) unless valid?
return error(project.errors.full_messages) unless project.saved?
diff --git a/app/views/projects/merge_requests/_code_dropdown.html.haml b/app/views/projects/merge_requests/_code_dropdown.html.haml
index 50f4e313bc5..bfa33f26453 100644
--- a/app/views/projects/merge_requests/_code_dropdown.html.haml
+++ b/app/views/projects/merge_requests/_code_dropdown.html.haml
@@ -1,6 +1,6 @@
.gl-md-ml-3.dropdown.gl-dropdown{ class: "gl-display-none! gl-md-display-flex!" }
#js-check-out-modal{ data: how_merge_modal_data(@merge_request) }
- = button_tag type: 'button', class: "btn dropdown-toggle btn-confirm-secondary gl-button gl-dropdown-toggle", data: { toggle: 'dropdown', testid: 'mr-code-dropdown' } do
+ = button_tag type: 'button', class: "btn dropdown-toggle btn-confirm gl-button gl-dropdown-toggle", data: { toggle: 'dropdown', testid: 'mr-code-dropdown' } do
%span.gl-dropdown-button-text= _('Code')
= sprite_icon "chevron-down", size: 16, css_class: "dropdown-icon gl-icon gl-ml-2 gl-mr-0!"
.dropdown-menu.dropdown-menu-right
diff --git a/app/workers/concerns/gitlab/github_import/object_importer.rb b/app/workers/concerns/gitlab/github_import/object_importer.rb
index 046d9ed49e1..15156e1deef 100644
--- a/app/workers/concerns/gitlab/github_import/object_importer.rb
+++ b/app/workers/concerns/gitlab/github_import/object_importer.rb
@@ -16,6 +16,7 @@ module Gitlab
feature_category :importers
worker_has_external_dependencies!
+ sidekiq_options retry: 5
sidekiq_retries_exhausted do |msg|
args = msg['args']
jid = msg['jid']
diff --git a/app/workers/concerns/gitlab/github_import/queue.rb b/app/workers/concerns/gitlab/github_import/queue.rb
index 7cc23dd7c0b..5aabc74a3d5 100644
--- a/app/workers/concerns/gitlab/github_import/queue.rb
+++ b/app/workers/concerns/gitlab/github_import/queue.rb
@@ -14,7 +14,7 @@ module Gitlab
# the dead queue. This does mean some resources may not be imported, but
# this is better than a project being stuck in the "import" state
# forever.
- sidekiq_options dead: false, retry: 5
+ sidekiq_options dead: false
end
end
end
diff --git a/app/workers/concerns/gitlab/github_import/stage_methods.rb b/app/workers/concerns/gitlab/github_import/stage_methods.rb
index bc0114e199f..5f6812ab84f 100644
--- a/app/workers/concerns/gitlab/github_import/stage_methods.rb
+++ b/app/workers/concerns/gitlab/github_import/stage_methods.rb
@@ -9,6 +9,9 @@ module Gitlab
included do
include ApplicationWorker
+ include GithubImport::Queue
+
+ sidekiq_options retry: 6
sidekiq_options status_expiration: Gitlab::Import::StuckImportJob::IMPORT_JOBS_EXPIRATION
diff --git a/app/workers/gitlab/github_import/advance_stage_worker.rb b/app/workers/gitlab/github_import/advance_stage_worker.rb
index a012241e90c..417b8598547 100644
--- a/app/workers/gitlab/github_import/advance_stage_worker.rb
+++ b/app/workers/gitlab/github_import/advance_stage_worker.rb
@@ -11,12 +11,15 @@ module Gitlab
data_consistency :always
- sidekiq_options retry: 3
include ::Gitlab::Import::AdvanceStage
- sidekiq_options dead: false
- feature_category :importers
loggable_arguments 1, 2
+ sidekiq_options retry: 6
+
+ # TODO: Allow this class to include GithubImport::Queue and remove
+ # the following two lines https://gitlab.com/gitlab-org/gitlab/-/issues/435622
+ feature_category :importers
+ sidekiq_options dead: false
# The known importer stages and their corresponding Sidekiq workers.
STAGES = {
diff --git a/app/workers/gitlab/github_import/refresh_import_jid_worker.rb b/app/workers/gitlab/github_import/refresh_import_jid_worker.rb
index fb586ca1ddd..dfc581f201b 100644
--- a/app/workers/gitlab/github_import/refresh_import_jid_worker.rb
+++ b/app/workers/gitlab/github_import/refresh_import_jid_worker.rb
@@ -9,6 +9,8 @@ module Gitlab
include GithubImport::Queue
+ sidekiq_options retry: 5
+
# The interval to schedule new instances of this job at.
INTERVAL = 5.minutes.to_i
diff --git a/app/workers/gitlab/github_import/stage/finish_import_worker.rb b/app/workers/gitlab/github_import/stage/finish_import_worker.rb
index 90445a6d46c..8d5a98136af 100644
--- a/app/workers/gitlab/github_import/stage/finish_import_worker.rb
+++ b/app/workers/gitlab/github_import/stage/finish_import_worker.rb
@@ -8,7 +8,6 @@ module Gitlab
data_consistency :always
- include GithubImport::Queue
include StageMethods
# project - An instance of Project.
diff --git a/app/workers/gitlab/github_import/stage/import_attachments_worker.rb b/app/workers/gitlab/github_import/stage/import_attachments_worker.rb
index a5d085a82c0..bbf762133e1 100644
--- a/app/workers/gitlab/github_import/stage/import_attachments_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_attachments_worker.rb
@@ -8,7 +8,6 @@ module Gitlab
data_consistency :always
- include GithubImport::Queue
include StageMethods
resumes_work_when_interrupted!
diff --git a/app/workers/gitlab/github_import/stage/import_base_data_worker.rb b/app/workers/gitlab/github_import/stage/import_base_data_worker.rb
index 5bbe14b6528..d965c1ae847 100644
--- a/app/workers/gitlab/github_import/stage/import_base_data_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_base_data_worker.rb
@@ -8,7 +8,6 @@ module Gitlab
data_consistency :always
- include GithubImport::Queue
include StageMethods
# These importers are fast enough that we can just run them in the same
diff --git a/app/workers/gitlab/github_import/stage/import_collaborators_worker.rb b/app/workers/gitlab/github_import/stage/import_collaborators_worker.rb
index 037b529b866..b5b1601e3ed 100644
--- a/app/workers/gitlab/github_import/stage/import_collaborators_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_collaborators_worker.rb
@@ -8,7 +8,6 @@ module Gitlab
data_consistency :always
- include GithubImport::Queue
include StageMethods
# client - An instance of Gitlab::GithubImport::Client.
diff --git a/app/workers/gitlab/github_import/stage/import_issue_events_worker.rb b/app/workers/gitlab/github_import/stage/import_issue_events_worker.rb
index 35779d7bfc5..27d14a1a108 100644
--- a/app/workers/gitlab/github_import/stage/import_issue_events_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_issue_events_worker.rb
@@ -8,7 +8,6 @@ module Gitlab
data_consistency :always
- include GithubImport::Queue
include StageMethods
resumes_work_when_interrupted!
diff --git a/app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb b/app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb
index 58e1f637b6a..595f0ca44d4 100644
--- a/app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb
@@ -8,7 +8,6 @@ module Gitlab
data_consistency :always
- include GithubImport::Queue
include StageMethods
resumes_work_when_interrupted!
diff --git a/app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb b/app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb
index 8d7bd98f303..34c31fea726 100644
--- a/app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb
@@ -8,7 +8,6 @@ module Gitlab
data_consistency :always
- include GithubImport::Queue
include StageMethods
# Importer::LfsObjectsImporter can resume work when interrupted as
diff --git a/app/workers/gitlab/github_import/stage/import_notes_worker.rb b/app/workers/gitlab/github_import/stage/import_notes_worker.rb
index 0459545d8e1..8aea27a94d4 100644
--- a/app/workers/gitlab/github_import/stage/import_notes_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_notes_worker.rb
@@ -8,7 +8,6 @@ module Gitlab
data_consistency :always
- include GithubImport::Queue
include StageMethods
resumes_work_when_interrupted!
diff --git a/app/workers/gitlab/github_import/stage/import_protected_branches_worker.rb b/app/workers/gitlab/github_import/stage/import_protected_branches_worker.rb
index e281e965f94..65b9d85f453 100644
--- a/app/workers/gitlab/github_import/stage/import_protected_branches_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_protected_branches_worker.rb
@@ -8,7 +8,6 @@ module Gitlab
data_consistency :always
- include GithubImport::Queue
include StageMethods
# client - An instance of Gitlab::GithubImport::Client.
diff --git a/app/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker.rb b/app/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker.rb
index 2f543951bf3..20b2e5ed6af 100644
--- a/app/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker.rb
@@ -8,7 +8,6 @@ module Gitlab
data_consistency :always
- include GithubImport::Queue
include StageMethods
resumes_work_when_interrupted!
diff --git a/app/workers/gitlab/github_import/stage/import_pull_requests_review_requests_worker.rb b/app/workers/gitlab/github_import/stage/import_pull_requests_review_requests_worker.rb
index db76545ae87..1262fc23c6c 100644
--- a/app/workers/gitlab/github_import/stage/import_pull_requests_review_requests_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_pull_requests_review_requests_worker.rb
@@ -8,7 +8,6 @@ module Gitlab
data_consistency :always
- include GithubImport::Queue
include StageMethods
resumes_work_when_interrupted!
diff --git a/app/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker.rb b/app/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker.rb
index 31b7c57a524..bb4699889da 100644
--- a/app/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker.rb
@@ -8,7 +8,6 @@ module Gitlab
data_consistency :always
- include GithubImport::Queue
include StageMethods
resumes_work_when_interrupted!
diff --git a/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb b/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb
index c68b95b5111..bcc39b169af 100644
--- a/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb
@@ -8,7 +8,6 @@ module Gitlab
data_consistency :always
- include GithubImport::Queue
include StageMethods
resumes_work_when_interrupted!
diff --git a/app/workers/gitlab/github_import/stage/import_repository_worker.rb b/app/workers/gitlab/github_import/stage/import_repository_worker.rb
index e1d67069348..44481b8a75c 100644
--- a/app/workers/gitlab/github_import/stage/import_repository_worker.rb
+++ b/app/workers/gitlab/github_import/stage/import_repository_worker.rb
@@ -8,7 +8,6 @@ module Gitlab
data_consistency :always
- include GithubImport::Queue
include StageMethods
# client - An instance of Gitlab::GithubImport::Client.
diff --git a/db/docs/batched_background_migrations.yml b/db/docs/batched_background_migrations.yml
index d23f1b30b1d..96860405ddb 100644
--- a/db/docs/batched_background_migrations.yml
+++ b/db/docs/batched_background_migrations.yml
@@ -6,7 +6,7 @@ feature_categories:
- database
description: >-
The batched_background_migrations table stores information about the batched background migrations present in the system.
- See https://docs.gitlab.com/ee/development/batched_background_migrations.html for more details.
+ See https://docs.gitlab.com/ee/development/database/batched_background_migrations.html for more details.
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/54628
milestone: '13.10'
gitlab_schema: gitlab_shared
diff --git a/doc/ci/jobs/job_artifacts.md b/doc/ci/jobs/job_artifacts.md
index 6593335b63d..f93068faf01 100644
--- a/doc/ci/jobs/job_artifacts.md
+++ b/doc/ci/jobs/job_artifacts.md
@@ -67,6 +67,8 @@ is used.
To prevent artifacts from expiring, you can select **Keep** from the job details page.
The option is not available when an artifact has no expiry set.
+By default, the [latest artifacts are always kept](#keep-artifacts-from-most-recent-successful-jobs).
+
### With a dynamically defined name
You can use [CI/CD variables](../variables/index.md) to dynamically define the
@@ -331,15 +333,21 @@ With this configuration, GitLab adds **artifact 1** as a link to `file.txt` to t
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/16267) in GitLab 13.0.
> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/229936) in GitLab 13.4.
> - [Made optional with a CI/CD setting](https://gitlab.com/gitlab-org/gitlab/-/issues/241026) in GitLab 13.8.
+> - Artifacts for [blocked](https://gitlab.com/gitlab-org/gitlab/-/issues/387087) or [failed](https://gitlab.com/gitlab-org/gitlab/-/issues/266958) pipelines no longer kept indefinitely in GitLab 16.7.
+
+By default artifacts are always kept for successful pipelines for the most recent commit on each ref.
+Any [`expire_in`](#with-an-expiry) configuration does not apply to the most recent artifacts.
-By default artifacts are always kept for successful pipelines for the most recent commit on
-each ref. This means that the latest artifacts do not immediately expire according
-to the `expire_in` configuration.
+A pipeline's artifacts are only deleted according to the `expire_in` configuration
+if a new pipeline runs for the same ref and:
-If a pipeline for a new commit on the same ref completes successfully, the previous pipeline's
-artifacts are deleted according to the `expire_in` configuration. The artifacts
-of the new pipeline are kept automatically. If multiple pipelines run for the most
-recent commit on the ref, all artifacts are kept.
+- Succeeds.
+- Fails.
+- Stops running due to being blocked by a manual job.
+
+Additionally, artifacts are kept for the ref's last successful pipeline even if it
+is not the latest pipeline. As a result, if a new pipeline run fails, the last successful pipeline's
+artifacts are still kept.
Keeping the latest artifacts can use a large amount of storage space in projects
with a lot of jobs or large artifacts. If the latest artifacts are not needed in
@@ -356,7 +364,3 @@ Then the artifacts in the earlier pipeline for that ref are allowed to expire to
You can disable this behavior for all projects on a self-managed instance in the
[instance's CI/CD settings](../../administration/settings/continuous_integration.md#keep-the-latest-artifacts-for-all-jobs-in-the-latest-successful-pipelines).
-
-When **Keep artifacts from most recent successful jobs** is enabled, artifacts are always kept for [blocked](job_control.md#types-of-manual-jobs)
-pipelines. These artifacts expire only after the blocking job is triggered and the pipeline completes.
-[Issue 387087](https://gitlab.com/gitlab-org/gitlab/-/issues/387087) proposes to change this behavior.
diff --git a/doc/development/code_review.md b/doc/development/code_review.md
index 25b9216183f..84d2537d058 100644
--- a/doc/development/code_review.md
+++ b/doc/development/code_review.md
@@ -231,6 +231,8 @@ Efforts to improve this are in:
#### Acceptance checklist
+<!-- When editing, remember to announce the change to Engineering Division -->
+
This checklist encourages the authors, reviewers, and maintainers of merge requests (MRs) to confirm changes were analyzed for high-impact risks to quality, performance, reliability, security, observability, and maintainability.
Using checklists improves quality in software engineering. This checklist is a straightforward tool to support and bolster the skills of contributors to the GitLab codebase.
diff --git a/doc/development/contributing/merge_request_workflow.md b/doc/development/contributing/merge_request_workflow.md
index 30fe82aae58..8ede40e741e 100644
--- a/doc/development/contributing/merge_request_workflow.md
+++ b/doc/development/contributing/merge_request_workflow.md
@@ -294,7 +294,7 @@ requirements.
### Approval
-1. The [MR acceptance checklist](../code_review.md#acceptance-checklist) has been checked as confirmed in the MR.
+1. The MR was evaluated against the [MR acceptance checklist](../code_review.md#acceptance-checklist).
1. Create an issue in the [infrastructure issue tracker](https://gitlab.com/gitlab-com/gl-infra/reliability/-/issues) to inform the Infrastructure department when your contribution is changing default settings or introduces a new setting, if relevant.
1. An agreed-upon [rollout plan](https://about.gitlab.com/handbook/engineering/development/processes/rollout-plans/).
1. Reviewed by relevant reviewers, and all concerns are addressed for Availability, Regressions, and Security. Documentation reviews should take place as soon as possible, but they should not block a merge request.
diff --git a/lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml b/lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml
index e4f6dc5b0ff..a5cddf5d2d7 100644
--- a/lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml
@@ -1,5 +1,5 @@
variables:
- DAST_AUTO_DEPLOY_IMAGE_VERSION: 'v2.70.0'
+ DAST_AUTO_DEPLOY_IMAGE_VERSION: 'v2.71.0'
.dast-auto-deploy:
image: "${CI_TEMPLATE_REGISTRY_HOST}/gitlab-org/cluster-integration/auto-deploy-image:${DAST_AUTO_DEPLOY_IMAGE_VERSION}"
diff --git a/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml b/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml
index 64dcb5fae27..0a899f3bb74 100644
--- a/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml
@@ -1,5 +1,5 @@
variables:
- AUTO_DEPLOY_IMAGE_VERSION: 'v2.70.0'
+ AUTO_DEPLOY_IMAGE_VERSION: 'v2.71.0'
.auto-deploy:
image: "${CI_TEMPLATE_REGISTRY_HOST}/gitlab-org/cluster-integration/auto-deploy-image:${AUTO_DEPLOY_IMAGE_VERSION}"
diff --git a/lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml b/lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml
index d6e5d511e2e..87a7f79c0ce 100644
--- a/lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Jobs/Deploy.latest.gitlab-ci.yml
@@ -1,5 +1,5 @@
variables:
- AUTO_DEPLOY_IMAGE_VERSION: 'v2.70.0'
+ AUTO_DEPLOY_IMAGE_VERSION: 'v2.71.0'
.auto-deploy:
image: "${CI_TEMPLATE_REGISTRY_HOST}/gitlab-org/cluster-integration/auto-deploy-image:${AUTO_DEPLOY_IMAGE_VERSION}"
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 87f7daf2612..ffba34b0765 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -550,6 +550,9 @@ msgstr ""
msgid "%{author} has added you as an approver."
msgstr ""
+msgid "%{author} requested to merge %{source_branch} %{copy_button} into %{target_branch} %{created_at}"
+msgstr ""
+
msgid "%{board_target} not found"
msgstr ""
@@ -5359,6 +5362,9 @@ msgid_plural "An error occurred while saving the settings"
msgstr[0] ""
msgstr[1] ""
+msgid "An error occurred while saving the settings."
+msgstr ""
+
msgid "An error occurred while saving your settings. Try saving them again."
msgstr ""
@@ -45335,6 +45341,9 @@ msgstr ""
msgid "Settings for the License Compliance feature"
msgstr ""
+msgid "Settings saved successfully."
+msgstr ""
+
msgid "Settings|Enable this feature allows you to add customized CI YAML file to run as part of the policies action. This features is your acceptance of the %{link_start}GitLab Testing Agreement%{link_end}."
msgstr ""
diff --git a/package.json b/package.json
index 8b36ebd0ce1..839933a6690 100644
--- a/package.json
+++ b/package.json
@@ -255,7 +255,7 @@
"chokidar": "^3.5.3",
"commander": "^2.20.3",
"custom-jquery-matchers": "^2.1.0",
- "eslint": "8.55.0",
+ "eslint": "8.56.0",
"eslint-import-resolver-jest": "3.0.2",
"eslint-import-resolver-webpack": "0.13.8",
"eslint-plugin-import": "^2.29.1",
diff --git a/qa/Gemfile b/qa/Gemfile
index 5b1b5aeaec6..65ee52e44aa 100644
--- a/qa/Gemfile
+++ b/qa/Gemfile
@@ -2,7 +2,7 @@
source 'https://rubygems.org'
-gem 'gitlab-qa', '~> 13', require: 'gitlab/qa'
+gem 'gitlab-qa', '~> 13', '>= 13.1.0', require: 'gitlab/qa'
gem 'gitlab_quality-test_tooling', '~> 1.9.0', require: false
gem 'gitlab-utils', path: '../gems/gitlab-utils'
gem 'activesupport', '~> 7.0.8' # This should stay in sync with the root's Gemfile
diff --git a/qa/Gemfile.lock b/qa/Gemfile.lock
index 0045d4555e1..eb847eb04ec 100644
--- a/qa/Gemfile.lock
+++ b/qa/Gemfile.lock
@@ -120,7 +120,7 @@ GEM
gitlab (4.19.0)
httparty (~> 0.20)
terminal-table (>= 1.5.1)
- gitlab-qa (13.0.0)
+ gitlab-qa (13.1.0)
activesupport (>= 6.1, < 7.1)
gitlab (~> 4.19)
http (~> 5.0)
@@ -359,7 +359,7 @@ DEPENDENCIES
faraday-retry (~> 2.2)
fog-core (= 2.1.0)
fog-google (~> 1.19)
- gitlab-qa (~> 13)
+ gitlab-qa (~> 13, >= 13.1.0)
gitlab-utils!
gitlab_quality-test_tooling (~> 1.9.0)
influxdb-client (~> 3.0)
diff --git a/qa/qa/support/ssh.rb b/qa/qa/support/ssh.rb
index eebe5e65504..b2fbddce87d 100644
--- a/qa/qa/support/ssh.rb
+++ b/qa/qa/support/ssh.rb
@@ -25,7 +25,7 @@ module QA
File.binwrite(private_key_file, key.private_key)
File.chmod(0700, private_key_file)
- keyscan_params = ['-H']
+ keyscan_params = ['-T 60 -H']
keyscan_params << "-p #{uri_port}" if uri_port
keyscan_params << uri.host
diff --git a/qa/spec/support/ssh_spec.rb b/qa/spec/support/ssh_spec.rb
index 2edff824fd6..fe38ba7a64e 100644
--- a/qa/spec/support/ssh_spec.rb
+++ b/qa/spec/support/ssh_spec.rb
@@ -59,8 +59,8 @@ RSpec.describe QA::Support::SSH do
end
describe '#setup' do
- let(:expected_ssh_command_no_port) { "ssh-keyscan -H foo.com >> #{known_hosts_file.path}" }
- let(:expected_ssh_command_port) { "ssh-keyscan -H -p #{port} foo.com >> #{known_hosts_file.path}" }
+ let(:expected_ssh_command_no_port) { "ssh-keyscan -T 60 -H foo.com >> #{known_hosts_file.path}" }
+ let(:expected_ssh_command_port) { "ssh-keyscan -T 60 -H -p #{port} foo.com >> #{known_hosts_file.path}" }
let(:call_method) { ssh.setup }
before do
diff --git a/spec/features/merge_request/user_creates_merge_request_spec.rb b/spec/features/merge_request/user_creates_merge_request_spec.rb
index fdc996ef39b..eab5cee976e 100644
--- a/spec/features/merge_request/user_creates_merge_request_spec.rb
+++ b/spec/features/merge_request/user_creates_merge_request_spec.rb
@@ -98,7 +98,7 @@ RSpec.describe 'User creates a merge request', :js, feature_category: :code_revi
click_button('Create merge request')
- expect(page).to have_content(title).and have_content("• #{forked_project.full_path}:fix ➔ master")
+ expect(page).to have_content(title).and have_content("requested to merge #{forked_project.full_path}:fix into master")
end
end
end
diff --git a/spec/features/merge_request/user_edits_merge_request_spec.rb b/spec/features/merge_request/user_edits_merge_request_spec.rb
index 31b382be611..584a17ae33d 100644
--- a/spec/features/merge_request/user_edits_merge_request_spec.rb
+++ b/spec/features/merge_request/user_edits_merge_request_spec.rb
@@ -95,7 +95,7 @@ RSpec.describe 'User edits a merge request', :js, feature_category: :code_review
click_button('Save changes')
- expect(page).to have_content("• #{merge_request.source_branch} ➔ merge-test")
+ expect(page).to have_content("requested to merge #{merge_request.source_branch} into merge-test")
expect(page).to have_content("changed target branch from #{merge_request.target_branch} to merge-test")
end
diff --git a/spec/features/users/signup_spec.rb b/spec/features/users/signup_spec.rb
index 539c017dd0f..bb08ed7d07d 100644
--- a/spec/features/users/signup_spec.rb
+++ b/spec/features/users/signup_spec.rb
@@ -339,11 +339,24 @@ RSpec.describe 'Signup', :js, feature_category: :user_management do
end
context 'when invisible captcha detects malicious behaviour' do
- it 'prevents from signing up' do
- visit new_user_registration_path
+ context 'with form submitted quicker than timestamp_threshold', :freeze_time do
+ it 'prevents from signing up' do
+ visit new_user_registration_path
- expect { fill_in_sign_up_form(new_user) }.not_to change { User.count }
- expect(page).to have_content('That was a bit too quick! Please resubmit.')
+ expect { fill_in_sign_up_form(new_user) }.not_to change { User.count }
+ expect(page).to have_content('That was a bit too quick! Please resubmit.')
+ end
+ end
+
+ context 'with honeypot field is filled' do
+ it 'prevents from signing up' do
+ visit new_user_registration_path
+
+ find_field('If you are human, please ignore this field.',
+ visible: false).execute_script("this.value = 'bot'")
+
+ expect { fill_in_sign_up_form(new_user) }.not_to change { User.count }
+ end
end
end
end
diff --git a/spec/frontend/badges/store/actions_spec.js b/spec/frontend/badges/store/actions_spec.js
index 5ca199357f9..1900ebc1e08 100644
--- a/spec/frontend/badges/store/actions_spec.js
+++ b/spec/frontend/badges/store/actions_spec.js
@@ -258,7 +258,7 @@ describe('Badges store actions', () => {
it('dispatches requestLoadBadges and receiveLoadBadges for successful response', async () => {
const dummyData = 'this is just some data';
- const dummyReponse = [
+ const dummyResponse = [
createDummyBadgeResponse(),
createDummyBadgeResponse(),
createDummyBadgeResponse(),
@@ -266,11 +266,11 @@ describe('Badges store actions', () => {
endpointMock.replyOnce(() => {
expect(dispatch.mock.calls).toEqual([['requestLoadBadges', dummyData]]);
dispatch.mockClear();
- return [HTTP_STATUS_OK, dummyReponse];
+ return [HTTP_STATUS_OK, dummyResponse];
});
await actions.loadBadges({ state, dispatch }, dummyData);
- const badges = dummyReponse.map(transformBackendBadge);
+ const badges = dummyResponse.map(transformBackendBadge);
expect(dispatch.mock.calls).toEqual([['receiveLoadBadges', badges]]);
});
@@ -377,15 +377,15 @@ describe('Badges store actions', () => {
});
it('dispatches requestRenderedBadge and receiveRenderedBadge for successful response', async () => {
- const dummyReponse = createDummyBadgeResponse();
+ const dummyResponse = createDummyBadgeResponse();
endpointMock.replyOnce(() => {
expect(dispatch.mock.calls).toEqual([['requestRenderedBadge']]);
dispatch.mockClear();
- return [HTTP_STATUS_OK, dummyReponse];
+ return [HTTP_STATUS_OK, dummyResponse];
});
await actions.renderBadge({ state, dispatch });
- const renderedBadge = transformBackendBadge(dummyReponse);
+ const renderedBadge = transformBackendBadge(dummyResponse);
expect(dispatch.mock.calls).toEqual([['receiveRenderedBadge', renderedBadge]]);
});
diff --git a/spec/lib/bulk_imports/pipeline/runner_spec.rb b/spec/lib/bulk_imports/pipeline/runner_spec.rb
index 72e5e16a5b4..5482068204d 100644
--- a/spec/lib/bulk_imports/pipeline/runner_spec.rb
+++ b/spec/lib/bulk_imports/pipeline/runner_spec.rb
@@ -306,14 +306,14 @@ RSpec.describe BulkImports::Pipeline::Runner, feature_category: :importers do
allow(extractor).to receive(:extract).with(context).and_raise(
BulkImports::NetworkError.new(
'Net::ReadTimeout',
- response: instance_double(HTTParty::Response, code: reponse_status_code, headers: {})
+ response: instance_double(HTTParty::Response, code: response_status_code, headers: {})
)
)
end
end
context 'when exception is retriable' do
- let(:reponse_status_code) { 429 }
+ let(:response_status_code) { 429 }
it 'raises the exception BulkImports::RetryPipelineError' do
expect { subject.run }.to raise_error(BulkImports::RetryPipelineError)
@@ -321,7 +321,7 @@ RSpec.describe BulkImports::Pipeline::Runner, feature_category: :importers do
end
context 'when exception is not retriable' do
- let(:reponse_status_code) { 505 }
+ let(:response_status_code) { 505 }
it_behaves_like 'failed pipeline', 'BulkImports::NetworkError', 'Net::ReadTimeout'
end
diff --git a/spec/models/container_repository_spec.rb b/spec/models/container_repository_spec.rb
index fb32c796016..dc53c420704 100644
--- a/spec/models/container_repository_spec.rb
+++ b/spec/models/container_repository_spec.rb
@@ -1148,9 +1148,9 @@ RSpec.describe ContainerRepository, :aggregate_failures, feature_category: :cont
end
end
- describe '.find_or_create_from_path' do
+ describe '.find_or_create_from_path!' do
let(:repository) do
- described_class.find_or_create_from_path(ContainerRegistry::Path.new(path))
+ described_class.find_or_create_from_path!(ContainerRegistry::Path.new(path))
end
let(:repository_path) { ContainerRegistry::Path.new(path) }
@@ -1239,7 +1239,7 @@ RSpec.describe ContainerRepository, :aggregate_failures, feature_category: :cont
Thread.new do
true while wait_for_it
- described_class.find_or_create_from_path(path)
+ described_class.find_or_create_from_path!(path)
end
end
wait_for_it = false
diff --git a/spec/requests/api/ci/pipeline_schedules_spec.rb b/spec/requests/api/ci/pipeline_schedules_spec.rb
index a4bb379d01c..f534b093b7c 100644
--- a/spec/requests/api/ci/pipeline_schedules_spec.rb
+++ b/spec/requests/api/ci/pipeline_schedules_spec.rb
@@ -241,7 +241,7 @@ RSpec.describe API::Ci::PipelineSchedules, feature_category: :continuous_integra
let(:url) { "/projects/#{project.id}/pipeline_schedules/#{pipeline_schedule.id}/pipelines" }
matcher :return_pipeline_schedule_pipelines_successfully do
- match_unless_raises do |reponse|
+ match_unless_raises do |response|
expect(response).to have_gitlab_http_status(:ok)
expect(response).to include_pagination_headers
expect(response).to match_response_schema('public_api/v4/pipelines')
diff --git a/spec/requests/api/graphql/mutations/container_registry/protection/rule/delete_spec.rb b/spec/requests/api/graphql/mutations/container_registry/protection/rule/delete_spec.rb
index 8b5eaf580f4..dd661c302ff 100644
--- a/spec/requests/api/graphql/mutations/container_registry/protection/rule/delete_spec.rb
+++ b/spec/requests/api/graphql/mutations/container_registry/protection/rule/delete_spec.rb
@@ -20,7 +20,7 @@ RSpec.describe 'Deleting a container registry protection rule', :aggregate_failu
post_graphql_mutation(mutation, current_user: current_user)
end
- shared_examples 'an erroneous reponse' do
+ shared_examples 'an erroneous response' do
it { post_graphql_mutation_delete_container_registry_protection_rule.tap { expect(mutation_response).to be_blank } }
it do
@@ -53,7 +53,7 @@ RSpec.describe 'Deleting a container registry protection rule', :aggregate_failu
create(:container_registry_protection_rule, repository_path_pattern: 'protection_rule_other_project')
end
- it_behaves_like 'an erroneous reponse'
+ it_behaves_like 'an erroneous response'
it { is_expected.tap { expect_graphql_errors_to_include(/you don't have permission to perform this action/) } }
end
@@ -64,7 +64,7 @@ RSpec.describe 'Deleting a container registry protection rule', :aggregate_failu
repository_path_pattern: 'protection_rule_deleted').destroy!
end
- it_behaves_like 'an erroneous reponse'
+ it_behaves_like 'an erroneous response'
it { is_expected.tap { expect_graphql_errors_to_include(/you don't have permission to perform this action/) } }
end
@@ -80,7 +80,7 @@ RSpec.describe 'Deleting a container registry protection rule', :aggregate_failu
end
with_them do
- it_behaves_like 'an erroneous reponse'
+ it_behaves_like 'an erroneous response'
it { is_expected.tap { expect_graphql_errors_to_include(/you don't have permission to perform this action/) } }
end
@@ -91,7 +91,7 @@ RSpec.describe 'Deleting a container registry protection rule', :aggregate_failu
stub_feature_flags(container_registry_protected_containers: false)
end
- it_behaves_like 'an erroneous reponse'
+ it_behaves_like 'an erroneous response'
it do
post_graphql_mutation_delete_container_registry_protection_rule
diff --git a/spec/requests/api/graphql/mutations/packages/protection/rule/delete_spec.rb b/spec/requests/api/graphql/mutations/packages/protection/rule/delete_spec.rb
index 1d94d520674..6c300f8ce57 100644
--- a/spec/requests/api/graphql/mutations/packages/protection/rule/delete_spec.rb
+++ b/spec/requests/api/graphql/mutations/packages/protection/rule/delete_spec.rb
@@ -15,7 +15,7 @@ RSpec.describe 'Deleting a package protection rule', :aggregate_failures, featur
subject { post_graphql_mutation(mutation, current_user: current_user) }
- shared_examples 'an erroneous reponse' do
+ shared_examples 'an erroneous response' do
it { subject.tap { expect(mutation_response).to be_blank } }
it { expect { subject }.not_to change { ::Packages::Protection::Rule.count } }
end
@@ -44,7 +44,7 @@ RSpec.describe 'Deleting a package protection rule', :aggregate_failures, featur
create(:package_protection_rule, package_name_pattern: 'protection_rule_other_project')
end
- it_behaves_like 'an erroneous reponse'
+ it_behaves_like 'an erroneous response'
it { subject.tap { expect_graphql_errors_to_include(/you don't have permission to perform this action/) } }
end
@@ -54,7 +54,7 @@ RSpec.describe 'Deleting a package protection rule', :aggregate_failures, featur
create(:package_protection_rule, project: project, package_name_pattern: 'protection_rule_deleted').destroy!
end
- it_behaves_like 'an erroneous reponse'
+ it_behaves_like 'an erroneous response'
it { subject.tap { expect_graphql_errors_to_include(/you don't have permission to perform this action/) } }
end
@@ -70,7 +70,7 @@ RSpec.describe 'Deleting a package protection rule', :aggregate_failures, featur
end
with_them do
- it_behaves_like 'an erroneous reponse'
+ it_behaves_like 'an erroneous response'
it { subject.tap { expect_graphql_errors_to_include(/you don't have permission to perform this action/) } }
end
@@ -81,7 +81,7 @@ RSpec.describe 'Deleting a package protection rule', :aggregate_failures, featur
stub_feature_flags(packages_protected_packages: false)
end
- it_behaves_like 'an erroneous reponse'
+ it_behaves_like 'an erroneous response'
it { subject.tap { expect_graphql_errors_to_include(/'packages_protected_packages' feature flag is disabled/) } }
end
diff --git a/spec/requests/api/graphql/mutations/packages/protection/rule/update_spec.rb b/spec/requests/api/graphql/mutations/packages/protection/rule/update_spec.rb
index cb4f9240311..efc919062d6 100644
--- a/spec/requests/api/graphql/mutations/packages/protection/rule/update_spec.rb
+++ b/spec/requests/api/graphql/mutations/packages/protection/rule/update_spec.rb
@@ -63,7 +63,7 @@ RSpec.describe 'Updating the packages protection rule', :aggregate_failures, fea
end
end
- shared_examples 'an erroneous reponse' do
+ shared_examples 'an erroneous response' do
it { subject.tap { expect(mutation_response).to be_blank } }
it { expect { subject }.not_to change { package_protection_rule.reload.updated_at } }
end
@@ -92,7 +92,7 @@ RSpec.describe 'Updating the packages protection rule', :aggregate_failures, fea
context 'with invalid input param `pushProtectedUpToAccessLevel`' do
let(:input) { super().merge(push_protected_up_to_access_level: nil) }
- it_behaves_like 'an erroneous reponse'
+ it_behaves_like 'an erroneous response'
it { is_expected.tap { expect_graphql_errors_to_include(/pushProtectedUpToAccessLevel can't be blank/) } }
end
@@ -100,7 +100,7 @@ RSpec.describe 'Updating the packages protection rule', :aggregate_failures, fea
context 'with invalid input param `packageNamePattern`' do
let(:input) { super().merge(package_name_pattern: '') }
- it_behaves_like 'an erroneous reponse'
+ it_behaves_like 'an erroneous response'
it { is_expected.tap { expect_graphql_errors_to_include(/packageNamePattern can't be blank/) } }
end
@@ -125,7 +125,7 @@ RSpec.describe 'Updating the packages protection rule', :aggregate_failures, fea
stub_feature_flags(packages_protected_packages: false)
end
- it_behaves_like 'an erroneous reponse'
+ it_behaves_like 'an erroneous response'
it 'returns error of disabled feature flag' do
is_expected.tap { expect_graphql_errors_to_include(/'packages_protected_packages' feature flag is disabled/) }
diff --git a/spec/requests/api/ml/mlflow/registered_models_spec.rb b/spec/requests/api/ml/mlflow/registered_models_spec.rb
index 4dd6fe31258..09cf765b0b3 100644
--- a/spec/requests/api/ml/mlflow/registered_models_spec.rb
+++ b/spec/requests/api/ml/mlflow/registered_models_spec.rb
@@ -207,7 +207,7 @@ RSpec.describe API::Ml::Mlflow::RegisteredModels, feature_category: :mlops do
let(:route) { "/projects/#{project_id}/ml/mlflow/api/2.0/mlflow/registered-models/delete" }
let(:request) { delete api(route), params: params, headers: headers }
- it 'returns a success reponse', :aggregate_failures do
+ it 'returns a success response', :aggregate_failures do
is_expected.to have_gitlab_http_status(:ok)
expect(json_response).to eq({})
end
diff --git a/spec/requests/api/remote_mirrors_spec.rb b/spec/requests/api/remote_mirrors_spec.rb
index 3da1760e319..7d37d73a361 100644
--- a/spec/requests/api/remote_mirrors_spec.rb
+++ b/spec/requests/api/remote_mirrors_spec.rb
@@ -50,7 +50,7 @@ RSpec.describe API::RemoteMirrors, feature_category: :source_code_management do
let(:route) { "/projects/#{project.id}/remote_mirrors" }
shared_examples 'creates a remote mirror' do
- it 'creates a remote mirror and returns reponse' do
+ it 'creates a remote mirror and returns response' do
project.add_maintainer(user)
post api(route, user), params: params
diff --git a/spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb b/spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb
index 3f3c5da5b55..37e686f9f92 100644
--- a/spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb
+++ b/spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb
@@ -15,6 +15,10 @@ RSpec.describe Gitlab::GithubImport::StageMethods, feature_category: :importers
end.new
end
+ it 'has a Sidekiq retry of 6' do
+ expect(worker.class.sidekiq_options['retry']).to eq(6)
+ end
+
describe '#perform' do
it 'returns if no project could be found' do
expect(worker).not_to receive(:try_import)
diff --git a/spec/workers/every_sidekiq_worker_spec.rb b/spec/workers/every_sidekiq_worker_spec.rb
index e18f5ec2524..c60e8d37c2e 100644
--- a/spec/workers/every_sidekiq_worker_spec.rb
+++ b/spec/workers/every_sidekiq_worker_spec.rb
@@ -263,7 +263,7 @@ RSpec.describe 'Every Sidekiq worker', feature_category: :shared do
'Gitlab::BitbucketServerImport::Stage::ImportPullRequestsWorker' => 3,
'Gitlab::BitbucketServerImport::Stage::ImportRepositoryWorker' => 3,
'Gitlab::BitbucketServerImport::Stage::ImportUsersWorker' => 3,
- 'Gitlab::GithubImport::AdvanceStageWorker' => 3,
+ 'Gitlab::GithubImport::AdvanceStageWorker' => 6,
'Gitlab::GithubImport::Attachments::ImportReleaseWorker' => 5,
'Gitlab::GithubImport::Attachments::ImportNoteWorker' => 5,
'Gitlab::GithubImport::Attachments::ImportIssueWorker' => 5,
@@ -280,20 +280,20 @@ RSpec.describe 'Every Sidekiq worker', feature_category: :shared do
'Gitlab::GithubImport::PullRequests::ImportMergedByWorker' => 5,
'Gitlab::GithubImport::ImportPullRequestWorker' => 5,
'Gitlab::GithubImport::RefreshImportJidWorker' => 5,
- 'Gitlab::GithubImport::Stage::FinishImportWorker' => 5,
- 'Gitlab::GithubImport::Stage::ImportBaseDataWorker' => 5,
- 'Gitlab::GithubImport::Stage::ImportIssuesAndDiffNotesWorker' => 5,
- 'Gitlab::GithubImport::Stage::ImportIssueEventsWorker' => 5,
- 'Gitlab::GithubImport::Stage::ImportLfsObjectsWorker' => 5,
- 'Gitlab::GithubImport::Stage::ImportAttachmentsWorker' => 5,
- 'Gitlab::GithubImport::Stage::ImportProtectedBranchesWorker' => 5,
- 'Gitlab::GithubImport::Stage::ImportNotesWorker' => 5,
- 'Gitlab::GithubImport::Stage::ImportCollaboratorsWorker' => 5,
- 'Gitlab::GithubImport::Stage::ImportPullRequestsMergedByWorker' => 5,
- 'Gitlab::GithubImport::Stage::ImportPullRequestsReviewRequestsWorker' => 5,
- 'Gitlab::GithubImport::Stage::ImportPullRequestsReviewsWorker' => 5,
- 'Gitlab::GithubImport::Stage::ImportPullRequestsWorker' => 5,
- 'Gitlab::GithubImport::Stage::ImportRepositoryWorker' => 5,
+ 'Gitlab::GithubImport::Stage::FinishImportWorker' => 6,
+ 'Gitlab::GithubImport::Stage::ImportBaseDataWorker' => 6,
+ 'Gitlab::GithubImport::Stage::ImportIssuesAndDiffNotesWorker' => 6,
+ 'Gitlab::GithubImport::Stage::ImportIssueEventsWorker' => 6,
+ 'Gitlab::GithubImport::Stage::ImportLfsObjectsWorker' => 6,
+ 'Gitlab::GithubImport::Stage::ImportAttachmentsWorker' => 6,
+ 'Gitlab::GithubImport::Stage::ImportProtectedBranchesWorker' => 6,
+ 'Gitlab::GithubImport::Stage::ImportNotesWorker' => 6,
+ 'Gitlab::GithubImport::Stage::ImportCollaboratorsWorker' => 6,
+ 'Gitlab::GithubImport::Stage::ImportPullRequestsMergedByWorker' => 6,
+ 'Gitlab::GithubImport::Stage::ImportPullRequestsReviewRequestsWorker' => 6,
+ 'Gitlab::GithubImport::Stage::ImportPullRequestsReviewsWorker' => 6,
+ 'Gitlab::GithubImport::Stage::ImportPullRequestsWorker' => 6,
+ 'Gitlab::GithubImport::Stage::ImportRepositoryWorker' => 6,
'Gitlab::GithubGistsImport::ImportGistWorker' => 5,
'Gitlab::GithubGistsImport::StartImportWorker' => 5,
'Gitlab::GithubGistsImport::FinishImportWorker' => 5,
diff --git a/spec/workers/gitlab/github_import/advance_stage_worker_spec.rb b/spec/workers/gitlab/github_import/advance_stage_worker_spec.rb
index 60c117a2a90..dcf016c550b 100644
--- a/spec/workers/gitlab/github_import/advance_stage_worker_spec.rb
+++ b/spec/workers/gitlab/github_import/advance_stage_worker_spec.rb
@@ -4,4 +4,8 @@ require 'spec_helper'
RSpec.describe Gitlab::GithubImport::AdvanceStageWorker, feature_category: :importers do
it_behaves_like Gitlab::Import::AdvanceStage, factory: :import_state
+
+ it 'has a Sidekiq retry of 6' do
+ expect(described_class.sidekiq_options['retry']).to eq(6)
+ end
end
diff --git a/yarn.lock b/yarn.lock
index c0cb00d3076..d70e6d32e5a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1194,10 +1194,10 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
-"@eslint/js@8.55.0":
- version "8.55.0"
- resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.55.0.tgz#b721d52060f369aa259cf97392403cb9ce892ec6"
- integrity sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==
+"@eslint/js@8.56.0":
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b"
+ integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==
"@floating-ui/core@^1.2.6":
version "1.2.6"
@@ -6307,15 +6307,15 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
-eslint@8.55.0:
- version "8.55.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.55.0.tgz#078cb7b847d66f2c254ea1794fa395bf8e7e03f8"
- integrity sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==
+eslint@8.56.0:
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15"
+ integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==
dependencies:
"@eslint-community/eslint-utils" "^4.2.0"
"@eslint-community/regexpp" "^4.6.1"
"@eslint/eslintrc" "^2.1.4"
- "@eslint/js" "8.55.0"
+ "@eslint/js" "8.56.0"
"@humanwhocodes/config-array" "^0.11.13"
"@humanwhocodes/module-importer" "^1.0.1"
"@nodelib/fs.walk" "^1.2.8"