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-10-12 21:11:36 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-10-12 21:11:36 +0300
commit50b113507b3b03bdce4753ba3ff3ffb53d21f756 (patch)
tree2c996d93db948331ed78cbe9654a09d245812da1 /app/services
parent00d1c402017269aa16bb71deca623a901baa113d (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services')
-rw-r--r--app/services/auth/container_registry_authentication_service.rb31
-rw-r--r--app/services/merge_requests/mergeability/check_base_service.rb18
-rw-r--r--app/services/merge_requests/mergeability/check_broken_status_service.rb10
-rw-r--r--app/services/merge_requests/mergeability/check_ci_status_service.rb10
-rw-r--r--app/services/merge_requests/mergeability/check_conflict_status_service.rb10
-rw-r--r--app/services/merge_requests/mergeability/check_discussions_status_service.rb10
-rw-r--r--app/services/merge_requests/mergeability/check_draft_status_service.rb10
-rw-r--r--app/services/merge_requests/mergeability/check_open_status_service.rb10
-rw-r--r--app/services/merge_requests/mergeability/check_rebase_status_service.rb10
-rw-r--r--app/services/merge_requests/mergeability/detailed_merge_status_service.rb4
-rw-r--r--app/services/merge_requests/mergeability/run_checks_service.rb32
-rw-r--r--app/services/packages/nuget/process_package_file_service.rb2
-rw-r--r--app/services/packages/nuget/update_package_from_metadata_service.rb2
-rw-r--r--app/services/update_container_registry_info_service.rb2
14 files changed, 87 insertions, 74 deletions
diff --git a/app/services/auth/container_registry_authentication_service.rb b/app/services/auth/container_registry_authentication_service.rb
index 9b010272995..c3c29dd7ed1 100644
--- a/app/services/auth/container_registry_authentication_service.rb
+++ b/app/services/auth/container_registry_authentication_service.rb
@@ -39,32 +39,45 @@ module Auth
end
def self.full_access_token(*names)
- access_token(%w[*], names)
+ names_and_actions = names.index_with { %w[*] }
+ access_token(names_and_actions)
end
def self.import_access_token
- access_token(%w[*], ['import'], 'registry')
+ access_token({ 'import' => %w[*] }, 'registry')
end
def self.pull_access_token(*names)
- access_token(['pull'], names)
+ names_and_actions = names.index_with { %w[pull] }
+ access_token(names_and_actions)
end
def self.pull_nested_repositories_access_token(name)
- name = name.chomp('/') if name.end_with?('/')
- paths = [name, "#{name}/*"]
- access_token(['pull'], paths)
+ name = name.chomp('/')
+
+ access_token({
+ name => %w[pull],
+ "#{name}/*" => %w[pull]
+ })
+ end
+
+ def self.push_pull_nested_repositories_access_token(name)
+ name = name.chomp('/')
+
+ access_token({
+ name => %w[pull push],
+ "#{name}/*" => %w[pull]
+ })
end
- def self.access_token(actions, names, type = 'repository')
- names = names.flatten
+ def self.access_token(names_and_actions, type = 'repository')
registry = Gitlab.config.registry
token = JSONWebToken::RSAToken.new(registry.key)
token.issuer = registry.issuer
token.audience = AUDIENCE
token.expire_time = token_expire_at
- token[:access] = names.map do |name|
+ token[:access] = names_and_actions.map do |name, actions|
{
type: type,
name: name,
diff --git a/app/services/merge_requests/mergeability/check_base_service.rb b/app/services/merge_requests/mergeability/check_base_service.rb
index e614a7c27fe..e1c4d751296 100644
--- a/app/services/merge_requests/mergeability/check_base_service.rb
+++ b/app/services/merge_requests/mergeability/check_base_service.rb
@@ -9,6 +9,10 @@ module MergeRequests
@params = params
end
+ def self.identifier
+ failure_reason
+ end
+
def skip?
raise NotImplementedError
end
@@ -24,12 +28,22 @@ module MergeRequests
private
+ def failure_reason
+ self.class.failure_reason
+ end
+
def success(**args)
- Gitlab::MergeRequests::Mergeability::CheckResult.success(payload: args)
+ Gitlab::MergeRequests::Mergeability::CheckResult
+ .success(payload: default_payload(args))
end
def failure(**args)
- Gitlab::MergeRequests::Mergeability::CheckResult.failed(payload: args)
+ Gitlab::MergeRequests::Mergeability::CheckResult
+ .failed(payload: default_payload(args))
+ end
+
+ def default_payload(args)
+ args.merge(identifier: self.class.identifier)
end
end
end
diff --git a/app/services/merge_requests/mergeability/check_broken_status_service.rb b/app/services/merge_requests/mergeability/check_broken_status_service.rb
index 6fe4eb4a57f..25293c53bb5 100644
--- a/app/services/merge_requests/mergeability/check_broken_status_service.rb
+++ b/app/services/merge_requests/mergeability/check_broken_status_service.rb
@@ -2,6 +2,10 @@
module MergeRequests
module Mergeability
class CheckBrokenStatusService < CheckBaseService
+ def self.failure_reason
+ :broken_status
+ end
+
def execute
if merge_request.broken?
failure(reason: failure_reason)
@@ -17,12 +21,6 @@ module MergeRequests
def cacheable?
false
end
-
- private
-
- def failure_reason
- :broken_status
- end
end
end
end
diff --git a/app/services/merge_requests/mergeability/check_ci_status_service.rb b/app/services/merge_requests/mergeability/check_ci_status_service.rb
index 9e09b513c57..f7fa3259d97 100644
--- a/app/services/merge_requests/mergeability/check_ci_status_service.rb
+++ b/app/services/merge_requests/mergeability/check_ci_status_service.rb
@@ -2,6 +2,10 @@
module MergeRequests
module Mergeability
class CheckCiStatusService < CheckBaseService
+ def self.failure_reason
+ :ci_must_pass
+ end
+
def execute
if merge_request.mergeable_ci_state?
success
@@ -17,12 +21,6 @@ module MergeRequests
def cacheable?
false
end
-
- private
-
- def failure_reason
- :ci_must_pass
- end
end
end
end
diff --git a/app/services/merge_requests/mergeability/check_conflict_status_service.rb b/app/services/merge_requests/mergeability/check_conflict_status_service.rb
index 40138f72e32..2bc253322c9 100644
--- a/app/services/merge_requests/mergeability/check_conflict_status_service.rb
+++ b/app/services/merge_requests/mergeability/check_conflict_status_service.rb
@@ -3,6 +3,10 @@
module MergeRequests
module Mergeability
class CheckConflictStatusService < CheckBaseService
+ def self.failure_reason
+ :conflict
+ end
+
def execute
if merge_request.can_be_merged?
success
@@ -18,12 +22,6 @@ module MergeRequests
def cacheable?
false
end
-
- private
-
- def failure_reason
- :conflict
- end
end
end
end
diff --git a/app/services/merge_requests/mergeability/check_discussions_status_service.rb b/app/services/merge_requests/mergeability/check_discussions_status_service.rb
index 3421d96e8ae..34db5f8a944 100644
--- a/app/services/merge_requests/mergeability/check_discussions_status_service.rb
+++ b/app/services/merge_requests/mergeability/check_discussions_status_service.rb
@@ -2,6 +2,10 @@
module MergeRequests
module Mergeability
class CheckDiscussionsStatusService < CheckBaseService
+ def self.failure_reason
+ :discussions_not_resolved
+ end
+
def execute
if merge_request.mergeable_discussions_state?
success
@@ -17,12 +21,6 @@ module MergeRequests
def cacheable?
false
end
-
- private
-
- def failure_reason
- :discussions_not_resolved
- end
end
end
end
diff --git a/app/services/merge_requests/mergeability/check_draft_status_service.rb b/app/services/merge_requests/mergeability/check_draft_status_service.rb
index dc42e4aa676..85b67fdc629 100644
--- a/app/services/merge_requests/mergeability/check_draft_status_service.rb
+++ b/app/services/merge_requests/mergeability/check_draft_status_service.rb
@@ -3,6 +3,10 @@
module MergeRequests
module Mergeability
class CheckDraftStatusService < CheckBaseService
+ def self.failure_reason
+ :draft_status
+ end
+
def execute
if merge_request.draft?
failure(reason: failure_reason)
@@ -18,12 +22,6 @@ module MergeRequests
def cacheable?
false
end
-
- private
-
- def failure_reason
- :draft_status
- end
end
end
end
diff --git a/app/services/merge_requests/mergeability/check_open_status_service.rb b/app/services/merge_requests/mergeability/check_open_status_service.rb
index 29f3d0d3ccb..f5b70f18394 100644
--- a/app/services/merge_requests/mergeability/check_open_status_service.rb
+++ b/app/services/merge_requests/mergeability/check_open_status_service.rb
@@ -3,6 +3,10 @@
module MergeRequests
module Mergeability
class CheckOpenStatusService < CheckBaseService
+ def self.failure_reason
+ :not_open
+ end
+
def execute
if merge_request.open?
success
@@ -18,12 +22,6 @@ module MergeRequests
def cacheable?
false
end
-
- private
-
- def failure_reason
- :not_open
- end
end
end
end
diff --git a/app/services/merge_requests/mergeability/check_rebase_status_service.rb b/app/services/merge_requests/mergeability/check_rebase_status_service.rb
index 1023716492b..2163fec8bd6 100644
--- a/app/services/merge_requests/mergeability/check_rebase_status_service.rb
+++ b/app/services/merge_requests/mergeability/check_rebase_status_service.rb
@@ -3,6 +3,10 @@
module MergeRequests
module Mergeability
class CheckRebaseStatusService < CheckBaseService
+ def self.failure_reason
+ :need_rebase
+ end
+
def execute
if merge_request.should_be_rebased?
failure(reason: failure_reason)
@@ -18,12 +22,6 @@ module MergeRequests
def cacheable?
false
end
-
- private
-
- def failure_reason
- :need_rebase
- end
end
end
end
diff --git a/app/services/merge_requests/mergeability/detailed_merge_status_service.rb b/app/services/merge_requests/mergeability/detailed_merge_status_service.rb
index 736b17dc84b..86c8122604c 100644
--- a/app/services/merge_requests/mergeability/detailed_merge_status_service.rb
+++ b/app/services/merge_requests/mergeability/detailed_merge_status_service.rb
@@ -24,7 +24,7 @@ module MergeRequests
ci_check_failure_reason
end
else
- check_results.failure_reason
+ check_results.payload[:failure_reason]
end
end
@@ -48,7 +48,7 @@ module MergeRequests
strong_memoize(:check_results) do
merge_request
.execute_merge_checks(
- merge_request.mergeable_state_checks,
+ MergeRequest.mergeable_state_checks,
params: { skip_ci_check: true }
)
end
diff --git a/app/services/merge_requests/mergeability/run_checks_service.rb b/app/services/merge_requests/mergeability/run_checks_service.rb
index cac55574cf4..5150c03d0a3 100644
--- a/app/services/merge_requests/mergeability/run_checks_service.rb
+++ b/app/services/merge_requests/mergeability/run_checks_service.rb
@@ -9,7 +9,7 @@ module MergeRequests
@params = params
end
- def execute(checks)
+ def execute(checks, execute_all: false)
@results = checks.each_with_object([]) do |check_class, result_hash|
check = check_class.new(merge_request: merge_request, params: params)
@@ -21,24 +21,20 @@ module MergeRequests
result_hash << check_result
- break result_hash if check_result.failed?
+ break result_hash if check_result.failed? && !execute_all
end
logger.commit
- self
- end
-
- def success?
- raise 'Execute needs to be called before' if results.nil?
-
- results.all?(&:success?)
- end
-
- def failure_reason
- raise 'Execute needs to be called before' if results.nil?
+ return ServiceResponse.success(payload: { results: results }) if all_results_success?
- results.find(&:failed?)&.payload&.fetch(:reason)&.to_sym
+ ServiceResponse.error(
+ message: 'Checks failed.',
+ payload: {
+ results: results,
+ failure_reason: failure_reason
+ }
+ )
end
private
@@ -67,6 +63,14 @@ module MergeRequests
MergeRequests::Mergeability::Logger.new(merge_request: merge_request)
end
end
+
+ def all_results_success?
+ results.all?(&:success?)
+ end
+
+ def failure_reason
+ results.find(&:failed?)&.payload&.fetch(:reason)&.to_sym
+ end
end
end
end
diff --git a/app/services/packages/nuget/process_package_file_service.rb b/app/services/packages/nuget/process_package_file_service.rb
index d1002f60e71..fa7a84ee3d6 100644
--- a/app/services/packages/nuget/process_package_file_service.rb
+++ b/app/services/packages/nuget/process_package_file_service.rb
@@ -47,8 +47,6 @@ module Packages
end
def create_symbol_files(zip_file)
- return if Feature.disabled?(:index_nuget_symbol_files, package_file.project)
-
::Packages::Nuget::Symbols::CreateSymbolFilesService
.new(package_file.package, zip_file)
.execute
diff --git a/app/services/packages/nuget/update_package_from_metadata_service.rb b/app/services/packages/nuget/update_package_from_metadata_service.rb
index a02795c2942..4cec4ed2fae 100644
--- a/app/services/packages/nuget/update_package_from_metadata_service.rb
+++ b/app/services/packages/nuget/update_package_from_metadata_service.rb
@@ -80,8 +80,6 @@ module Packages
end
def update_symbol_files(package, package_to_destroy)
- return if Feature.disabled?(:index_nuget_symbol_files, package.project)
-
package_to_destroy.nuget_symbols.update_all(package_id: package.id)
end
diff --git a/app/services/update_container_registry_info_service.rb b/app/services/update_container_registry_info_service.rb
index de90e7c71ad..b720f9b14a5 100644
--- a/app/services/update_container_registry_info_service.rb
+++ b/app/services/update_container_registry_info_service.rb
@@ -11,7 +11,7 @@ class UpdateContainerRegistryInfoService
# associated user when running this (e.g. from a rake task or a cron job),
# so we need to generate a valid JWT token with no access permissions to
# authenticate as a trusted client.
- token = Auth::ContainerRegistryAuthenticationService.access_token([], [])
+ token = Auth::ContainerRegistryAuthenticationService.access_token({})
client = ContainerRegistry::Client.new(registry_config.api_url, token: token)
info = client.registry_info