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

package tangled

// schema: sh.tangled.repo.merge

import (
	"context"

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

const (
	RepoMergeNSID = "sh.tangled.repo.merge"
)

// RepoMerge_Input is the input argument to a sh.tangled.repo.merge call.
type RepoMerge_Input struct {
	// authorEmail: Author email for the merge commit
	AuthorEmail *string `json:"authorEmail,omitempty" cborgen:"authorEmail,omitempty"`
	// authorName: Author name for the merge commit
	AuthorName *string `json:"authorName,omitempty" cborgen:"authorName,omitempty"`
	// branch: Target branch to merge into
	Branch string `json:"branch" cborgen:"branch"`
	// commitBody: Additional commit message body
	CommitBody *string `json:"commitBody,omitempty" cborgen:"commitBody,omitempty"`
	// commitMessage: Merge commit message
	CommitMessage *string `json:"commitMessage,omitempty" cborgen:"commitMessage,omitempty"`
	// did: DID of the repository owner
	Did string `json:"did" cborgen:"did"`
	// name: Name of the repository
	Name string `json:"name" cborgen:"name"`
	// patch: Patch content to merge
	Patch string `json:"patch" cborgen:"patch"`
	// repo: DID of the repository
	Repo *string `json:"repo,omitempty" cborgen:"repo,omitempty"`
}

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

	return nil
}
