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:
-rw-r--r--Gemfile2
-rw-r--r--Gemfile.checksum2
-rw-r--r--Gemfile.lock4
-rw-r--r--app/models/diff_viewer/base.rb4
-rw-r--r--app/serializers/diff_viewer_entity.rb1
-rw-r--r--config/events/code_suggestions_authenticate.yml22
-rw-r--r--config/metrics/counts_28d/count_total_code_suggestions_authenticate_28d.yml27
-rw-r--r--config/metrics/counts_7d/count_total_code_suggestions_authenticate_7d.yml27
-rw-r--r--db/docs/batched_background_migrations/mark_duplicate_npm_packages_for_destruction.yml1
-rw-r--r--db/docs/ci_editor_ai_conversation_messages.yml3
-rw-r--r--db/post_migrate/20231207221219_finalize_mark_duplicate_npm_packages_for_destruction.rb21
-rw-r--r--db/schema_migrations/202312072212191
-rw-r--r--lib/gitlab/diff/file.rb3
-rw-r--r--spec/fixtures/api/schemas/entities/diff_viewer.json6
-rw-r--r--spec/lib/gitlab/diff/file_spec.rb27
-rw-r--r--spec/models/diff_viewer/base_spec.rb22
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/semi_reliable_fetch.rb2
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb6
18 files changed, 170 insertions, 11 deletions
diff --git a/Gemfile b/Gemfile
index e5c5ef3c4e7..6e1d320652e 100644
--- a/Gemfile
+++ b/Gemfile
@@ -405,7 +405,7 @@ group :development do
gem 'listen', '~> 3.7' # rubocop:todo Gemfile/MissingFeatureCategory
- gem 'ruby-lsp', "~> 0.13.0", require: false, feature_category: :tooling
+ gem 'ruby-lsp', "~> 0.13.1", require: false, feature_category: :tooling
gem 'ruby-lsp-rails', "~> 0.2.8", feature_category: :tooling
diff --git a/Gemfile.checksum b/Gemfile.checksum
index 96f8ebdbbc7..84c7b41a4ee 100644
--- a/Gemfile.checksum
+++ b/Gemfile.checksum
@@ -556,7 +556,7 @@
{"name":"rubocop-rails","version":"2.22.1","platform":"ruby","checksum":"db673cdb6321d8bb7627cd6cfb2cb36114acaa0e89581e4694b7304ce2acbd46"},
{"name":"rubocop-rspec","version":"2.25.0","platform":"ruby","checksum":"083f8a0481dbb9969b2a9eae85670a454fe91d46812e6ec97b34e7f6227b99f3"},
{"name":"ruby-fogbugz","version":"0.3.0","platform":"ruby","checksum":"5e04cde474648f498a71cf1e1a7ab42c66b953862fbe224f793ec0a7a1d5f657"},
-{"name":"ruby-lsp","version":"0.13.0","platform":"ruby","checksum":"80c148ee5eff6d729ff9bef52e58cb1d6a506a4feaaba9ed7963ef0430b9568f"},
+{"name":"ruby-lsp","version":"0.13.1","platform":"ruby","checksum":"8f1243beb92a49e24447edbd0c31a7ee3a400376757dea60f068fe4eba4a4dff"},
{"name":"ruby-lsp-rails","version":"0.2.8","platform":"ruby","checksum":"1730cafa65c04c9bc3b6e28b3454afb561ae71859be1f26f36b065975a5a57c8"},
{"name":"ruby-lsp-rspec","version":"0.1.8","platform":"ruby","checksum":"21db2255bad7ecf7297945c453d8e84af167d01776853f47aacb3bb50caa0ea3"},
{"name":"ruby-magic","version":"0.6.0","platform":"ruby","checksum":"7b2138877b7d23aff812c95564eba6473b74b815ef85beb0eb792e729a2b6101"},
diff --git a/Gemfile.lock b/Gemfile.lock
index 48aeda1d90e..358df5c2839 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1462,7 +1462,7 @@ GEM
ruby-fogbugz (0.3.0)
crack (~> 0.4)
multipart-post (~> 2.0)
- ruby-lsp (0.13.0)
+ ruby-lsp (0.13.1)
language_server-protocol (~> 3.17.0)
prism (>= 0.18.0, < 0.19)
sorbet-runtime (>= 0.5.5685)
@@ -2042,7 +2042,7 @@ DEPENDENCIES
rspec_profiling (~> 0.0.6)
rubocop
ruby-fogbugz (~> 0.3.0)
- ruby-lsp (~> 0.13.0)
+ ruby-lsp (~> 0.13.1)
ruby-lsp-rails (~> 0.2.8)
ruby-lsp-rspec (~> 0.1.8)
ruby-magic (~> 0.6)
diff --git a/app/models/diff_viewer/base.rb b/app/models/diff_viewer/base.rb
index 31118791075..4fd3ee8425c 100644
--- a/app/models/diff_viewer/base.rb
+++ b/app/models/diff_viewer/base.rb
@@ -72,6 +72,10 @@ module DiffViewer
!@initially_binary && diff_file.binary_in_repo?
end
+ def generated?
+ diff_file.generated?
+ end
+
# This method is used on the server side to check whether we can attempt to
# render the diff_file at all. The human-readable error message can be
# retrieved by #render_error_message.
diff --git a/app/serializers/diff_viewer_entity.rb b/app/serializers/diff_viewer_entity.rb
index f8d9778a3ee..294d50f5f10 100644
--- a/app/serializers/diff_viewer_entity.rb
+++ b/app/serializers/diff_viewer_entity.rb
@@ -5,6 +5,7 @@ class DiffViewerEntity < Grape::Entity
expose :render_error, as: :error
expose :render_error_message, as: :error_message
expose :collapsed?, as: :collapsed
+ expose :generated?, as: :generated
expose :whitespace_only do |_, options|
options[:whitespace_only]
end
diff --git a/config/events/code_suggestions_authenticate.yml b/config/events/code_suggestions_authenticate.yml
new file mode 100644
index 00000000000..d5e1c0fd34b
--- /dev/null
+++ b/config/events/code_suggestions_authenticate.yml
@@ -0,0 +1,22 @@
+---
+description: Tracks the number of authentication requests to the `POST /code_suggestions/tokens` API endpoint.
+category: InternalEventTracking
+action: code_suggestions_authenticate
+label_description:
+property_description:
+value_description:
+extra_properties:
+identifiers:
+- user
+product_section: dev
+product_stage: create
+product_group: code_creation
+milestone: "16.7"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138848
+distributions:
+- ce
+- ee
+tiers:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/count_total_code_suggestions_authenticate_28d.yml b/config/metrics/counts_28d/count_total_code_suggestions_authenticate_28d.yml
new file mode 100644
index 00000000000..3688d770c53
--- /dev/null
+++ b/config/metrics/counts_28d/count_total_code_suggestions_authenticate_28d.yml
@@ -0,0 +1,27 @@
+---
+key_path: count_total_code_suggestions_authenticate_28d
+description: Tracks the number of authentication requests to the `POST /code_suggestions/tokens` API endpoint in the last 28 days.
+product_section: dev
+product_stage: create
+product_group: code_creation
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: "16.7"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138848
+time_frame: 28d
+data_source: internal_events
+data_category: optional
+instrumentation_class: TotalCountMetric
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+options:
+ events:
+ - code_suggestions_authenticate
+events:
+ - name: code_suggestions_authenticate
diff --git a/config/metrics/counts_7d/count_total_code_suggestions_authenticate_7d.yml b/config/metrics/counts_7d/count_total_code_suggestions_authenticate_7d.yml
new file mode 100644
index 00000000000..a2fe5a36c9b
--- /dev/null
+++ b/config/metrics/counts_7d/count_total_code_suggestions_authenticate_7d.yml
@@ -0,0 +1,27 @@
+---
+key_path: count_total_code_suggestions_authenticate_7d
+description: Tracks the number of authentication requests to the `POST /code_suggestions/tokens` API endpoint in the last 7 days.
+product_section: dev
+product_stage: create
+product_group: code_creation
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: "16.7"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138848
+time_frame: 7d
+data_source: internal_events
+data_category: optional
+instrumentation_class: TotalCountMetric
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+options:
+ events:
+ - code_suggestions_authenticate
+events:
+ - name: code_suggestions_authenticate
diff --git a/db/docs/batched_background_migrations/mark_duplicate_npm_packages_for_destruction.yml b/db/docs/batched_background_migrations/mark_duplicate_npm_packages_for_destruction.yml
index 6cc77ebfaa8..fcd1cecb741 100644
--- a/db/docs/batched_background_migrations/mark_duplicate_npm_packages_for_destruction.yml
+++ b/db/docs/batched_background_migrations/mark_duplicate_npm_packages_for_destruction.yml
@@ -4,3 +4,4 @@ description: It seeks duplicate npm packages and marks them for destruction.
feature_category: package_registry
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114695
milestone: '16.1'
+finalized_by: '20231207221219'
diff --git a/db/docs/ci_editor_ai_conversation_messages.yml b/db/docs/ci_editor_ai_conversation_messages.yml
index fd7ab9bac61..de4ca6490a6 100644
--- a/db/docs/ci_editor_ai_conversation_messages.yml
+++ b/db/docs/ci_editor_ai_conversation_messages.yml
@@ -4,7 +4,8 @@ classes:
- Ci::Editor::AiConversation::Message
feature_categories:
- pipeline_composition
-description: "Represents an ai message for a user and project for the pipeline editor bot."
+description: Represents an ai message for a user and project for the pipeline editor
+ bot.
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119840
milestone: '16.0'
gitlab_schema: gitlab_ci
diff --git a/db/post_migrate/20231207221219_finalize_mark_duplicate_npm_packages_for_destruction.rb b/db/post_migrate/20231207221219_finalize_mark_duplicate_npm_packages_for_destruction.rb
new file mode 100644
index 00000000000..a9340cbebb8
--- /dev/null
+++ b/db/post_migrate/20231207221219_finalize_mark_duplicate_npm_packages_for_destruction.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class FinalizeMarkDuplicateNpmPackagesForDestruction < Gitlab::Database::Migration[2.2]
+ milestone '16.7'
+
+ disable_ddl_transaction!
+
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ def up
+ ensure_batched_background_migration_is_finished(
+ job_class_name: 'MarkDuplicateNpmPackagesForDestruction',
+ table_name: :packages_packages,
+ column_name: :project_id,
+ job_arguments: [],
+ finalize: true
+ )
+ end
+
+ def down; end
+end
diff --git a/db/schema_migrations/20231207221219 b/db/schema_migrations/20231207221219
new file mode 100644
index 00000000000..67c81deb2be
--- /dev/null
+++ b/db/schema_migrations/20231207221219
@@ -0,0 +1 @@
+638b573c9ab658ddae603facd35a0861ac7a1257fcd7b6bf3b24a12fbd10bcaa \ No newline at end of file
diff --git a/lib/gitlab/diff/file.rb b/lib/gitlab/diff/file.rb
index de7be6efd72..6ddd8a208bc 100644
--- a/lib/gitlab/diff/file.rb
+++ b/lib/gitlab/diff/file.rb
@@ -9,7 +9,8 @@ module Gitlab
delegate :new_file?, :deleted_file?, :renamed_file?, :unidiff,
:old_path, :new_path, :a_mode, :b_mode, :mode_changed?,
- :submodule?, :expanded?, :too_large?, :collapsed?, :line_count, :has_binary_notice?, to: :diff, prefix: false
+ :submodule?, :expanded?, :too_large?, :collapsed?, :line_count, :has_binary_notice?,
+ :generated?, to: :diff, prefix: false
# Finding a viewer for a diff file happens based only on extension and whether the
# diff file blobs are binary or text, which means 1 diff file should only be matched by 1 viewer,
diff --git a/spec/fixtures/api/schemas/entities/diff_viewer.json b/spec/fixtures/api/schemas/entities/diff_viewer.json
index b16f8d8b1a2..6fa1604e505 100644
--- a/spec/fixtures/api/schemas/entities/diff_viewer.json
+++ b/spec/fixtures/api/schemas/entities/diff_viewer.json
@@ -26,6 +26,12 @@
"boolean"
]
},
+ "generated": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
"whitespace_only": {
"type": [
"boolean",
diff --git a/spec/lib/gitlab/diff/file_spec.rb b/spec/lib/gitlab/diff/file_spec.rb
index bc4fc49b1b7..2cd27472440 100644
--- a/spec/lib/gitlab/diff/file_spec.rb
+++ b/spec/lib/gitlab/diff/file_spec.rb
@@ -5,7 +5,7 @@ require 'spec_helper'
RSpec.describe Gitlab::Diff::File do
include RepoHelpers
- let(:project) { create(:project, :repository) }
+ let_it_be(:project) { create(:project, :repository) }
let(:commit) { project.commit(sample_commit.id) }
let(:diff) { commit.raw_diffs.first }
let(:diff_file) { described_class.new(diff, diff_refs: commit.diff_refs, repository: project.repository) }
@@ -51,6 +51,31 @@ RSpec.describe Gitlab::Diff::File do
project.commit(branch_name).diffs.diff_files.first
end
+ describe 'delegated methods' do
+ subject { diff_file }
+
+ %i[
+ new_file?
+ deleted_file?
+ renamed_file?
+ unidiff
+ old_path
+ new_path
+ a_mode
+ b_mode
+ mode_changed?
+ submodule?
+ expanded?
+ too_large?
+ collapsed?
+ line_count
+ has_binary_notice?
+ generated?
+ ].each do |method|
+ it { is_expected.to delegate_method(method).to(:diff) }
+ end
+ end
+
describe '#initialize' do
let(:commit) { project.commit("532c837") }
diff --git a/spec/models/diff_viewer/base_spec.rb b/spec/models/diff_viewer/base_spec.rb
index 8ab7b090928..17925ef2576 100644
--- a/spec/models/diff_viewer/base_spec.rb
+++ b/spec/models/diff_viewer/base_spec.rb
@@ -100,6 +100,28 @@ RSpec.describe DiffViewer::Base do
end
end
+ describe '#generated?' do
+ before do
+ allow(diff_file).to receive(:generated?).and_return(generated)
+ end
+
+ context 'when the diff file is generated' do
+ let(:generated) { true }
+
+ it 'returns true' do
+ expect(viewer.generated?).to be_truthy
+ end
+ end
+
+ context 'when the diff file is not generated' do
+ let(:generated) { false }
+
+ it 'returns true' do
+ expect(viewer.generated?).to be_falsey
+ end
+ end
+ end
+
describe '#render_error' do
context 'when the combined blob size is larger than the size limit' do
before do
diff --git a/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/semi_reliable_fetch.rb b/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/semi_reliable_fetch.rb
index 91b41501374..e65d9b6324a 100644
--- a/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/semi_reliable_fetch.rb
+++ b/vendor/gems/sidekiq-reliable-fetch/lib/sidekiq/semi_reliable_fetch.rb
@@ -5,7 +5,7 @@ module Sidekiq
# We want the fetch operation to timeout every few seconds so the thread
# can check if the process is shutting down. This constant is only used
# for semi-reliable fetch.
- DEFAULT_SEMI_RELIABLE_FETCH_TIMEOUT = 2 # seconds
+ DEFAULT_SEMI_RELIABLE_FETCH_TIMEOUT = 5 # seconds
def initialize(options)
super
diff --git a/vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb b/vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb
index 60cd81ba913..5bd40a80277 100644
--- a/vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb
+++ b/vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb
@@ -21,7 +21,7 @@ describe Sidekiq::SemiReliableFetch do
it 'brpops with the default timeout timeout' do
Sidekiq.redis do |connection|
- expect(connection).to receive(:brpop).with("queue:stuff_to_do", { timeout: 2 }).once.and_call_original
+ expect(connection).to receive(:brpop).with("queue:stuff_to_do", { timeout: 5 }).once.and_call_original
fetcher.retrieve_work
end
@@ -29,11 +29,11 @@ describe Sidekiq::SemiReliableFetch do
end
context 'when the timeout is set in the env' do
- let(:timeout) { '5' }
+ let(:timeout) { '6' }
it 'brpops with the default timeout timeout' do
Sidekiq.redis do |connection|
- expect(connection).to receive(:brpop).with("queue:stuff_to_do", { timeout: 5 }).once.and_call_original
+ expect(connection).to receive(:brpop).with("queue:stuff_to_do", { timeout: 6 }).once.and_call_original
fetcher.retrieve_work
end