summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-08-26 18:10:35 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-08-26 18:10:35 +0000
commita56971e97f0385640c2f3568017bd221897b78ef (patch)
treea22308ba6707f73199e3c80523e88b6363044ca4 /app
parentd3fafe0995cb26212095568f95de6692ec629157 (diff)
downloadgitlab-ce-a56971e97f0385640c2f3568017bd221897b78ef.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/graphql/queries/repository/files.query.graphql1
-rw-r--r--app/graphql/queries/repository/path_last_commit.query.graphql1
-rw-r--r--app/graphql/queries/repository/permissions.query.graphql1
-rw-r--r--app/graphql/types/dependency_proxy/blob_type.rb16
-rw-r--r--app/graphql/types/dependency_proxy/group_setting_type.rb13
-rw-r--r--app/graphql/types/dependency_proxy/manifest_type.rb22
-rw-r--r--app/graphql/types/group_type.rb44
-rw-r--r--app/models/ci/bridge.rb18
-rw-r--r--app/models/note.rb2
-rw-r--r--app/policies/dependency_proxy/blob_policy.rb6
-rw-r--r--app/policies/dependency_proxy/group_setting_policy.rb6
-rw-r--r--app/policies/dependency_proxy/manifest_policy.rb6
-rw-r--r--app/services/projects/move_deploy_keys_projects_service.rb2
-rw-r--r--app/services/projects/move_forks_service.rb2
-rw-r--r--app/services/projects/move_lfs_objects_projects_service.rb2
-rw-r--r--app/services/projects/move_notification_settings_service.rb2
-rw-r--r--app/services/projects/move_project_authorizations_service.rb2
-rw-r--r--app/services/projects/move_project_group_links_service.rb2
-rw-r--r--app/services/projects/move_project_members_service.rb2
-rw-r--r--app/services/projects/move_users_star_projects_service.rb2
20 files changed, 135 insertions, 17 deletions
diff --git a/app/graphql/queries/repository/files.query.graphql b/app/graphql/queries/repository/files.query.graphql
index 232d98a932c..a83880ce696 100644
--- a/app/graphql/queries/repository/files.query.graphql
+++ b/app/graphql/queries/repository/files.query.graphql
@@ -23,6 +23,7 @@ query getFiles(
$nextPageCursor: String
) {
project(fullPath: $projectPath) {
+ id
__typename
repository {
__typename
diff --git a/app/graphql/queries/repository/path_last_commit.query.graphql b/app/graphql/queries/repository/path_last_commit.query.graphql
index d845f7c6224..b5c5f653429 100644
--- a/app/graphql/queries/repository/path_last_commit.query.graphql
+++ b/app/graphql/queries/repository/path_last_commit.query.graphql
@@ -1,5 +1,6 @@
query pathLastCommit($projectPath: ID!, $path: String, $ref: String!) {
project(fullPath: $projectPath) {
+ id
__typename
repository {
__typename
diff --git a/app/graphql/queries/repository/permissions.query.graphql b/app/graphql/queries/repository/permissions.query.graphql
index c0262a882cd..6d2ae362e31 100644
--- a/app/graphql/queries/repository/permissions.query.graphql
+++ b/app/graphql/queries/repository/permissions.query.graphql
@@ -1,5 +1,6 @@
query getPermissions($projectPath: ID!) {
project(fullPath: $projectPath) {
+ id
__typename
userPermissions {
__typename
diff --git a/app/graphql/types/dependency_proxy/blob_type.rb b/app/graphql/types/dependency_proxy/blob_type.rb
new file mode 100644
index 00000000000..f5a78fbb3ba
--- /dev/null
+++ b/app/graphql/types/dependency_proxy/blob_type.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+module Types
+ class DependencyProxy::BlobType < BaseObject
+ graphql_name 'DependencyProxyBlob'
+
+ description 'Dependency proxy blob'
+
+ authorize :read_dependency_proxy
+
+ field :created_at, Types::TimeType, null: false, description: 'Date of creation.'
+ field :updated_at, Types::TimeType, null: false, description: 'Date of most recent update.'
+ field :file_name, GraphQL::Types::String, null: false, description: 'Name of the blob.'
+ field :size, GraphQL::Types::String, null: false, description: 'Size of the blob file.'
+ end
+end
diff --git a/app/graphql/types/dependency_proxy/group_setting_type.rb b/app/graphql/types/dependency_proxy/group_setting_type.rb
new file mode 100644
index 00000000000..8b8b8572aa9
--- /dev/null
+++ b/app/graphql/types/dependency_proxy/group_setting_type.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+module Types
+ class DependencyProxy::GroupSettingType < BaseObject
+ graphql_name 'DependencyProxySetting'
+
+ description 'Group-level Dependency Proxy settings'
+
+ authorize :read_dependency_proxy
+
+ field :enabled, GraphQL::Types::Boolean, null: false, description: 'Indicates whether the dependency proxy is enabled for the group.'
+ end
+end
diff --git a/app/graphql/types/dependency_proxy/manifest_type.rb b/app/graphql/types/dependency_proxy/manifest_type.rb
new file mode 100644
index 00000000000..9aa62266ef7
--- /dev/null
+++ b/app/graphql/types/dependency_proxy/manifest_type.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+module Types
+ class DependencyProxy::ManifestType < BaseObject
+ graphql_name 'DependencyProxyManifest'
+
+ description 'Dependency proxy manifest'
+
+ authorize :read_dependency_proxy
+
+ field :created_at, Types::TimeType, null: false, description: 'Date of creation.'
+ field :updated_at, Types::TimeType, null: false, description: 'Date of most recent update.'
+ field :file_name, GraphQL::Types::String, null: false, description: 'Name of the manifest.'
+ field :image_name, GraphQL::Types::String, null: false, description: 'Name of the image.'
+ field :size, GraphQL::Types::String, null: false, description: 'Size of the manifest file.'
+ field :digest, GraphQL::Types::String, null: false, description: 'Digest of the manifest.'
+
+ def image_name
+ object.file_name.chomp(File.extname(object.file_name))
+ end
+ end
+end
diff --git a/app/graphql/types/group_type.rb b/app/graphql/types/group_type.rb
index 46b8833e5fb..58bc83fdd3c 100644
--- a/app/graphql/types/group_type.rb
+++ b/app/graphql/types/group_type.rb
@@ -128,6 +128,36 @@ module Types
description: 'Packages of the group.',
resolver: Resolvers::GroupPackagesResolver
+ field :dependency_proxy_setting,
+ Types::DependencyProxy::GroupSettingType,
+ null: true,
+ description: 'Dependency Proxy settings for the group.'
+
+ field :dependency_proxy_manifests,
+ Types::DependencyProxy::ManifestType.connection_type,
+ null: true,
+ description: 'Dependency Proxy manifests.'
+
+ field :dependency_proxy_blobs,
+ Types::DependencyProxy::BlobType.connection_type,
+ null: true,
+ description: 'Dependency Proxy blobs.'
+
+ field :dependency_proxy_image_count,
+ GraphQL::Types::Int,
+ null: false,
+ description: 'Number of dependency proxy images cached in the group.'
+
+ field :dependency_proxy_blob_count,
+ GraphQL::Types::Int,
+ null: false,
+ description: 'Number of dependency proxy blobs cached in the group.'
+
+ field :dependency_proxy_total_size,
+ GraphQL::Types::String,
+ null: false,
+ description: 'Total size of the dependency proxy cached images.'
+
def label(title:)
BatchLoader::GraphQL.for(title).batch(key: group) do |titles, loader, args|
LabelsFinder
@@ -172,6 +202,20 @@ module Types
group.container_repositories.size
end
+ def dependency_proxy_image_count
+ group.dependency_proxy_manifests.count
+ end
+
+ def dependency_proxy_blob_count
+ group.dependency_proxy_blobs.count
+ end
+
+ def dependency_proxy_total_size
+ ActiveSupport::NumberHelper.number_to_human_size(
+ group.dependency_proxy_manifests.sum(:size) + group.dependency_proxy_blobs.sum(:size)
+ )
+ end
+
private
def group
diff --git a/app/models/ci/bridge.rb b/app/models/ci/bridge.rb
index 577bca282ef..97fb8233d34 100644
--- a/app/models/ci/bridge.rb
+++ b/app/models/ci/bridge.rb
@@ -28,10 +28,10 @@ module Ci
state_machine :status do
after_transition [:created, :manual, :waiting_for_resource] => :pending do |bridge|
- next unless bridge.downstream_project
+ next unless bridge.triggers_downstream_pipeline?
bridge.run_after_commit do
- bridge.schedule_downstream_pipeline!
+ ::Ci::CreateCrossProjectPipelineWorker.perform_async(bridge.id)
end
end
@@ -64,12 +64,6 @@ module Ci
)
end
- def schedule_downstream_pipeline!
- raise InvalidBridgeTypeError unless downstream_project
-
- ::Ci::CreateCrossProjectPipelineWorker.perform_async(self.id)
- end
-
def inherit_status_from_downstream!(pipeline)
case pipeline.status
when 'success'
@@ -112,10 +106,18 @@ module Ci
pipeline if triggers_child_pipeline?
end
+ def triggers_downstream_pipeline?
+ triggers_child_pipeline? || triggers_cross_project_pipeline?
+ end
+
def triggers_child_pipeline?
yaml_for_downstream.present?
end
+ def triggers_cross_project_pipeline?
+ downstream_project_path.present?
+ end
+
def tags
[:bridge]
end
diff --git a/app/models/note.rb b/app/models/note.rb
index 6c5bbf36bd6..7619ace6dce 100644
--- a/app/models/note.rb
+++ b/app/models/note.rb
@@ -643,7 +643,7 @@ class Note < ApplicationRecord
user_visible_reference_count > 0 && user_visible_reference_count == total_reference_count
else
refs = all_references(user)
- refs.all.any? && refs.stateful_not_visible_counter == 0
+ refs.all.any? && refs.all_visible?
end
end
diff --git a/app/policies/dependency_proxy/blob_policy.rb b/app/policies/dependency_proxy/blob_policy.rb
new file mode 100644
index 00000000000..42e023952d0
--- /dev/null
+++ b/app/policies/dependency_proxy/blob_policy.rb
@@ -0,0 +1,6 @@
+# frozen_string_literal: true
+module DependencyProxy
+ class BlobPolicy < BasePolicy
+ delegate { @subject.group }
+ end
+end
diff --git a/app/policies/dependency_proxy/group_setting_policy.rb b/app/policies/dependency_proxy/group_setting_policy.rb
new file mode 100644
index 00000000000..71de3cf93bd
--- /dev/null
+++ b/app/policies/dependency_proxy/group_setting_policy.rb
@@ -0,0 +1,6 @@
+# frozen_string_literal: true
+module DependencyProxy
+ class GroupSettingPolicy < BasePolicy
+ delegate { @subject.group }
+ end
+end
diff --git a/app/policies/dependency_proxy/manifest_policy.rb b/app/policies/dependency_proxy/manifest_policy.rb
new file mode 100644
index 00000000000..f2e91e45327
--- /dev/null
+++ b/app/policies/dependency_proxy/manifest_policy.rb
@@ -0,0 +1,6 @@
+# frozen_string_literal: true
+module DependencyProxy
+ class ManifestPolicy < BasePolicy
+ delegate { @subject.group }
+ end
+end
diff --git a/app/services/projects/move_deploy_keys_projects_service.rb b/app/services/projects/move_deploy_keys_projects_service.rb
index 17513f0ba11..98ba5eb3f13 100644
--- a/app/services/projects/move_deploy_keys_projects_service.rb
+++ b/app/services/projects/move_deploy_keys_projects_service.rb
@@ -5,7 +5,7 @@ module Projects
def execute(source_project, remove_remaining_elements: true)
return unless super
- Project.transaction(requires_new: true) do # rubocop:disable Performance/ActiveRecordSubtransactions
+ Project.transaction do
move_deploy_keys_projects
remove_remaining_deploy_keys_projects if remove_remaining_elements
diff --git a/app/services/projects/move_forks_service.rb b/app/services/projects/move_forks_service.rb
index f61552f661f..a96cf4dd3ea 100644
--- a/app/services/projects/move_forks_service.rb
+++ b/app/services/projects/move_forks_service.rb
@@ -5,7 +5,7 @@ module Projects
def execute(source_project, remove_remaining_elements: true)
return unless super && source_project.fork_network
- Project.transaction(requires_new: true) do # rubocop:disable Performance/ActiveRecordSubtransactions
+ Project.transaction do
move_fork_network_members
update_root_project
refresh_forks_count
diff --git a/app/services/projects/move_lfs_objects_projects_service.rb b/app/services/projects/move_lfs_objects_projects_service.rb
index ca8b4bfde68..7107ecc6c95 100644
--- a/app/services/projects/move_lfs_objects_projects_service.rb
+++ b/app/services/projects/move_lfs_objects_projects_service.rb
@@ -5,7 +5,7 @@ module Projects
def execute(source_project, remove_remaining_elements: true)
return unless super
- Project.transaction(requires_new: true) do # rubocop:disable Performance/ActiveRecordSubtransactions
+ Project.transaction do
move_lfs_objects_projects
remove_remaining_lfs_objects_project if remove_remaining_elements
diff --git a/app/services/projects/move_notification_settings_service.rb b/app/services/projects/move_notification_settings_service.rb
index fc268f5762b..fb84f10207d 100644
--- a/app/services/projects/move_notification_settings_service.rb
+++ b/app/services/projects/move_notification_settings_service.rb
@@ -5,7 +5,7 @@ module Projects
def execute(source_project, remove_remaining_elements: true)
return unless super
- Project.transaction(requires_new: true) do # rubocop:disable Performance/ActiveRecordSubtransactions
+ Project.transaction do
move_notification_settings
remove_remaining_notification_settings if remove_remaining_elements
diff --git a/app/services/projects/move_project_authorizations_service.rb b/app/services/projects/move_project_authorizations_service.rb
index 30f3b892131..6ac173a20fc 100644
--- a/app/services/projects/move_project_authorizations_service.rb
+++ b/app/services/projects/move_project_authorizations_service.rb
@@ -9,7 +9,7 @@ module Projects
def execute(source_project, remove_remaining_elements: true)
return unless super
- Project.transaction(requires_new: true) do # rubocop:disable Performance/ActiveRecordSubtransactions
+ Project.transaction do
move_project_authorizations
remove_remaining_authorizations if remove_remaining_elements
diff --git a/app/services/projects/move_project_group_links_service.rb b/app/services/projects/move_project_group_links_service.rb
index 8344b0b404b..5f6a7dd09e1 100644
--- a/app/services/projects/move_project_group_links_service.rb
+++ b/app/services/projects/move_project_group_links_service.rb
@@ -9,7 +9,7 @@ module Projects
def execute(source_project, remove_remaining_elements: true)
return unless super
- Project.transaction(requires_new: true) do # rubocop:disable Performance/ActiveRecordSubtransactions
+ Project.transaction do
move_group_links
remove_remaining_project_group_links if remove_remaining_elements
diff --git a/app/services/projects/move_project_members_service.rb b/app/services/projects/move_project_members_service.rb
index 11629c3fd7e..011bd17c8cc 100644
--- a/app/services/projects/move_project_members_service.rb
+++ b/app/services/projects/move_project_members_service.rb
@@ -9,7 +9,7 @@ module Projects
def execute(source_project, remove_remaining_elements: true)
return unless super
- Project.transaction(requires_new: true) do # rubocop:disable Performance/ActiveRecordSubtransactions
+ Project.transaction do
move_project_members
remove_remaining_members if remove_remaining_elements
diff --git a/app/services/projects/move_users_star_projects_service.rb b/app/services/projects/move_users_star_projects_service.rb
index b8564a02301..5490448553f 100644
--- a/app/services/projects/move_users_star_projects_service.rb
+++ b/app/services/projects/move_users_star_projects_service.rb
@@ -9,7 +9,7 @@ module Projects
return unless user_stars.any?
- Project.transaction(requires_new: true) do # rubocop:disable Performance/ActiveRecordSubtransactions
+ Project.transaction do
user_stars.update_all(project_id: @project.id)
Project.reset_counters @project.id, :users_star_projects