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:
Diffstat (limited to 'app/graphql/types/packages/package_type.rb')
-rw-r--r--app/graphql/types/packages/package_type.rb64
1 files changed, 7 insertions, 57 deletions
diff --git a/app/graphql/types/packages/package_type.rb b/app/graphql/types/packages/package_type.rb
index 1155be28e08..f6586670c72 100644
--- a/app/graphql/types/packages/package_type.rb
+++ b/app/graphql/types/packages/package_type.rb
@@ -2,67 +2,17 @@
module Types
module Packages
- class PackageType < ::Types::BaseObject
+ class PackageType < Types::Packages::PackageBaseType
graphql_name 'Package'
- description 'Represents a package in the Package Registry. Note that this type is in beta and susceptible to changes'
-
- connection_type_class(Types::CountableConnectionType)
+ description 'Represents a package with pipelines in the Package Registry'
authorize :read_package
- field :id, ::Types::GlobalIDType[::Packages::Package], null: false,
- description: 'ID of the package.'
-
- field :can_destroy, GraphQL::Types::Boolean, null: false, description: 'Whether the user can destroy the package.'
- field :created_at, Types::TimeType, null: false, description: 'Date of creation.'
- field :metadata, Types::Packages::MetadataType, null: true,
- description: 'Package metadata.'
- field :name, GraphQL::Types::String, null: false, description: 'Name of the package.'
- field :package_type, Types::Packages::PackageTypeEnum, null: false, description: 'Package type.'
- field :pipelines, Types::Ci::PipelineType.connection_type, null: true,
- description: 'Pipelines that built the package.',
- deprecated: { reason: 'Due to scalability concerns, this field is going to be removed', milestone: '14.6' }
- field :project, Types::ProjectType, null: false, description: 'Project where the package is stored.'
- field :status, Types::Packages::PackageStatusEnum, null: false, description: 'Package status.'
- field :tags, Types::Packages::PackageTagType.connection_type, null: true, description: 'Package tags.'
- field :updated_at, Types::TimeType, null: false, description: 'Date of most recent update.'
- field :version, GraphQL::Types::String, null: true, description: 'Version string.'
- field :versions, ::Types::Packages::PackageType.connection_type, null: true,
- description: 'Other versions of the package.',
- deprecated: { reason: 'This field is now only returned in the PackageDetailsType', milestone: '13.11' }
-
- def project
- Gitlab::Graphql::Loaders::BatchModelLoader.new(Project, object.project_id).find
- end
-
- def versions
- []
- end
-
- def can_destroy
- Ability.allowed?(current_user, :destroy_package, object)
- end
-
- # NOTE: This method must be kept in sync with the union
- # type: `Types::Packages::MetadataType`.
- #
- # `Types::Packages::MetadataType.resolve_type(metadata, ctx)` must never raise.
- def metadata
- case object.package_type
- when 'composer'
- object.composer_metadatum
- when 'conan'
- object.conan_metadatum
- when 'maven'
- object.maven_metadatum
- when 'nuget'
- object.nuget_metadatum
- when 'pypi'
- object.pypi_metadatum
- else
- nil
- end
- end
+ field :pipelines,
+ resolver: Resolvers::PackagePipelinesResolver,
+ description: <<-DESC
+ Pipelines that built the package. Max page size #{Resolvers::PackagePipelinesResolver::MAX_PAGE_SIZE}.
+ DESC
end
end
end