debian-mirror-gitlab/app/graphql/mutations/ci/job/retry.rb

45 lines
1.1 KiB
Ruby
Raw Normal View History

2021-06-08 01:23:25 +05:30
# frozen_string_literal: true
module Mutations
module Ci
module Job
class Retry < Base
graphql_name 'JobRetry'
field :job,
Types::Ci::JobType,
null: true,
2021-10-27 15:23:28 +05:30
description: 'Job after the mutation.'
2021-06-08 01:23:25 +05:30
2022-08-27 11:52:29 +05:30
argument :variables, [::Types::Ci::VariableInputType],
required: false,
default_value: [],
replace_null_with_default: true,
description: 'Variables to use when retrying a manual job.'
2021-06-08 01:23:25 +05:30
authorize :update_build
2022-08-27 11:52:29 +05:30
def resolve(id:, variables:)
2021-06-08 01:23:25 +05:30
job = authorized_find!(id: id)
project = job.project
2022-08-27 11:52:29 +05:30
variables = variables.map(&:to_h)
2021-06-08 01:23:25 +05:30
2022-08-27 11:52:29 +05:30
response = ::Ci::RetryJobService.new(project, current_user).execute(job, variables: variables)
2022-06-21 17:19:12 +05:30
if response.success?
{
job: response[:job],
errors: []
}
else
{
job: nil,
errors: [response.message]
}
end
2021-06-08 01:23:25 +05:30
end
end
end
end
end