diff options
Diffstat (limited to 'app/graphql/types/deployment_type.rb')
-rw-r--r-- | app/graphql/types/deployment_type.rb | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/app/graphql/types/deployment_type.rb b/app/graphql/types/deployment_type.rb new file mode 100644 index 00000000000..70a3a4cb574 --- /dev/null +++ b/app/graphql/types/deployment_type.rb @@ -0,0 +1,69 @@ +# frozen_string_literal: true + +module Types + # If you're considering to add a new field in DeploymentType, please follow this guideline: + # - If the field is preloadable in batch, define it in DeploymentType. + # In this case, you should extend DeploymentsResolver logic to preload the field. Also, add a new test that + # fetching the specific field for multiple deployments doesn't cause N+1 query problem. + # - If the field is NOT preloadable in batch, define it in DeploymentDetailsType. + # This type can be only fetched for a single deployment, so you don't need to take care of the preloading. + class DeploymentType < BaseObject + graphql_name 'Deployment' + description 'The deployment of an environment' + + present_using Deployments::DeploymentPresenter + + authorize :read_deployment + + field :id, + GraphQL::Types::ID, + description: 'Global ID of the deployment.' + + field :iid, + GraphQL::Types::ID, + description: 'Project-level internal ID of the deployment.' + + field :ref, + GraphQL::Types::String, + description: 'Git-Ref that the deployment ran on.' + + field :tag, + GraphQL::Types::Boolean, + description: 'True or false if the deployment ran on a Git-tag.' + + field :sha, + GraphQL::Types::String, + description: 'Git-SHA that the deployment ran on.' + + field :created_at, + Types::TimeType, + description: 'When the deployment record was created.' + + field :updated_at, + Types::TimeType, + description: 'When the deployment record was updated.' + + field :finished_at, + Types::TimeType, + description: 'When the deployment finished.' + + field :status, + Types::DeploymentStatusEnum, + description: 'Status of the deployment.' + + field :commit, + Types::CommitType, + description: 'Commit details of the deployment.', + calls_gitaly: true + + field :job, + Types::Ci::JobType, + description: 'Pipeline job of the deployment.', + method: :build + + field :triggerer, + Types::UserType, + description: 'User who executed the deployment.', + method: :deployed_by + end +end |