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

package tangled

// schema: sh.tangled.repo.forkStatus

import (
	"context"

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

const (
	RepoForkStatusNSID = "sh.tangled.repo.forkStatus"
)

// RepoForkStatus_Input is the input argument to a sh.tangled.repo.forkStatus call.
type RepoForkStatus_Input struct {
	// branch: Branch to check status for
	Branch string `json:"branch" cborgen:"branch"`
	// did: DID of the fork owner
	Did string `json:"did" cborgen:"did"`
	// hiddenRef: Hidden ref to use for comparison
	HiddenRef string `json:"hiddenRef" cborgen:"hiddenRef"`
	// name: Name of the forked repository
	Name string `json:"name" cborgen:"name"`
	// source: Source repository URL
	Source string `json:"source" cborgen:"source"`
}

// RepoForkStatus_Output is the output of a sh.tangled.repo.forkStatus call.
type RepoForkStatus_Output struct {
	// status: Fork status: 0=UpToDate, 1=FastForwardable, 2=Conflict, 3=MissingBranch
	Status int64 `json:"status" cborgen:"status"`
}

// RepoForkStatus calls the XRPC method "sh.tangled.repo.forkStatus".
func RepoForkStatus(ctx context.Context, c util.LexClient, input *RepoForkStatus_Input) (*RepoForkStatus_Output, error) {
	var out RepoForkStatus_Output
	if err := c.LexDo(ctx, util.Procedure, "application/json", "sh.tangled.repo.forkStatus", nil, input, &out); err != nil {
		return nil, err
	}

	return &out, nil
}
