diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-26 18:10:35 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-26 18:10:35 +0000 |
commit | a56971e97f0385640c2f3568017bd221897b78ef (patch) | |
tree | a22308ba6707f73199e3c80523e88b6363044ca4 /app | |
parent | d3fafe0995cb26212095568f95de6692ec629157 (diff) | |
download | gitlab-ce-a56971e97f0385640c2f3568017bd221897b78ef.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
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 |