// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.

package tangled

// schema: sh.tangled.repo.mergePullRequest

import (
	"context"

	"github.com/bluesky-social/indigo/lex/util"
)

const (
	RepoMergePullRequestNSID = "sh.tangled.repo.mergePullRequest"
)

// RepoMergePullRequest_Input is the input argument to a sh.tangled.repo.mergePullRequest call.
type RepoMergePullRequest_Input struct {
	// branch: Target branch to merge into
	Branch string                             `json:"branch" cborgen:"branch"`
	Commit *RepoMergePullRequest_Input_Commit `json:"commit,omitempty" cborgen:"commit,omitempty"`
	// repo: DID of git repository
	Repo   string                             `json:"repo" cborgen:"repo"`
	Source *RepoMergePullRequest_Input_Source `json:"source" cborgen:"source"`
	Style  string                             `json:"style" cborgen:"style"`
}

type RepoMergePullRequest_Input_Commit struct {
	// author: Merge commit author. Ignored when squash = false
	Author *GitDefs_Signature `json:"author,omitempty" cborgen:"author,omitempty"`
	// message: Merge commit message. Ignored when squash = false
	Message *string `json:"message,omitempty" cborgen:"message,omitempty"`
}

type RepoMergePullRequest_Input_Source struct {
	// commit: Head commit ID of PR to merge
	Commit string `json:"commit" cborgen:"commit"`
	// repo: DID of source git repository
	Repo string `json:"repo" cborgen:"repo"`
}

// RepoMergePullRequest calls the XRPC method "sh.tangled.repo.mergePullRequest".
func RepoMergePullRequest(ctx context.Context, c util.LexClient, input *RepoMergePullRequest_Input) error {
	if err := c.LexDo(ctx, util.Procedure, "application/json", "sh.tangled.repo.mergePullRequest", nil, input, nil); err != nil {
		return err
	}

	return nil
}
