debian-mirror-gitlab/app/graphql/mutations/ci/job/play.rb
2023-03-17 16:20:25 +05:30

37 lines
926 B
Ruby

# frozen_string_literal: true
module Mutations
module Ci
module Job
class Play < Base
graphql_name 'JobPlay'
field :job,
Types::Ci::JobType,
null: true,
description: 'Job after the mutation.'
argument :variables, [::Types::Ci::VariableInputType],
required: false,
default_value: [],
replace_null_with_default: true,
description: 'Variables to use when playing a manual job.'
authorize :update_build
def resolve(id:, variables:)
job = authorized_find!(id: id)
project = job.project
variables = variables.map(&:to_h)
::Ci::PlayBuildService.new(project, current_user).execute(job, variables)
{
job: job,
errors: errors_on_object(job)
}
end
end
end
end
end