diff options
Diffstat (limited to 'app/graphql/mutations/ci/pipeline_trigger/create.rb')
-rw-r--r-- | app/graphql/mutations/ci/pipeline_trigger/create.rb | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/app/graphql/mutations/ci/pipeline_trigger/create.rb b/app/graphql/mutations/ci/pipeline_trigger/create.rb new file mode 100644 index 00000000000..042f9b26dd0 --- /dev/null +++ b/app/graphql/mutations/ci/pipeline_trigger/create.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +module Mutations + module Ci + module PipelineTrigger + class Create < BaseMutation + graphql_name 'PipelineTriggerCreate' + + include FindsProject + + authorize :admin_build + + argument :project_path, GraphQL::Types::ID, + required: true, + description: 'Full path of the project that the pipeline trigger token to mutate is in.' + + argument :description, GraphQL::Types::String, + required: true, + description: 'Description of the pipeline trigger token.' + + field :pipeline_trigger, Types::Ci::PipelineTriggerType, + null: true, + description: 'Mutated pipeline trigger token.' + + def resolve(project_path:, description:) + project = authorized_find!(project_path) + + trigger = project.triggers.create(owner: current_user, description: description) + + { + pipeline_trigger: trigger, + errors: trigger.errors.full_messages + } + end + end + end + end +end |