Files
simplegit/gitrpc/v1/v1connect/gitrpc.connect.go
T
2026-07-15 11:06:48 -04:00

976 lines
50 KiB
Go

// Connect (crpc) contract for the gitrpc JSON-RPC server.
//
// This is a faithful translation of the hand-written JSON-RPC method set in
// handlers.go (registerRepoMethods + registerWriteMethods) plus the gitcmd
// result types those handlers return verbatim. Every rpc below maps 1:1 to a
// "repo.<name>" JSON-RPC method (noted in each comment); every message field
// keeps the snake_case name of the corresponding Go struct json tag so the
// wire shape matches what gitrpc serializes today.
//
// The server is path-driven and stateless: every method takes the repository
// NAME (owner/name.git) in `repo`; the server resolves it to an on-disk path
// and has already authorized the call before the handler runs. Auth/ACL and
// name->path resolution live in the caller (simpleconsole), not here.
//
// Generate Go + TS with protoc-gen-es (TS) / protoc-gen-go + protoc-gen-connect-go:
// protoc -I . --go_out=. --go_opt=paths=source_relative \
// --connect_go_out=. --connect_go_opt=paths=source_relative \
// --es_out=./gen --es_opt=target=ts \
// --plugin=protoc-gen-es=./node_modules/.bin/protoc-gen-es \
// gitrpc.proto
// Code generated by protoc-gen-connect-go. DO NOT EDIT.
//
// Source: gitrpc/gitrpc.proto
package v1connect
import (
connect "connectrpc.com/connect"
context "context"
errors "errors"
emptypb "google.golang.org/protobuf/types/known/emptypb"
http "net/http"
v1 "simplegit/gitrpc/v1"
strings "strings"
)
// This is a compile-time assertion to ensure that this generated file and the connect package are
// compatible. If you get a compiler error that this constant is not defined, this code was
// generated with a version of connect newer than the one compiled into your binary. You can fix the
// problem by either regenerating this code with an older version of connect or updating the connect
// version compiled into your binary.
const _ = connect.IsAtLeastVersion1_13_0
const (
// GitServiceName is the fully-qualified name of the GitService service.
GitServiceName = "simplegit.v1.GitService"
// ManageServiceName is the fully-qualified name of the ManageService service.
ManageServiceName = "simplegit.v1.ManageService"
)
// These constants are the fully-qualified names of the RPCs defined in this package. They're
// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route.
//
// Note that these are different from the fully-qualified method names used by
// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to
// reflection-formatted method names, remove the leading slash and convert the remaining slash to a
// period.
const (
// GitServiceListBranchesProcedure is the fully-qualified name of the GitService's ListBranches RPC.
GitServiceListBranchesProcedure = "/simplegit.v1.GitService/ListBranches"
// GitServiceListTagsProcedure is the fully-qualified name of the GitService's ListTags RPC.
GitServiceListTagsProcedure = "/simplegit.v1.GitService/ListTags"
// GitServiceListCommitsProcedure is the fully-qualified name of the GitService's ListCommits RPC.
GitServiceListCommitsProcedure = "/simplegit.v1.GitService/ListCommits"
// GitServiceListCommitsByPathProcedure is the fully-qualified name of the GitService's
// ListCommitsByPath RPC.
GitServiceListCommitsByPathProcedure = "/simplegit.v1.GitService/ListCommitsByPath"
// GitServiceGetCommitProcedure is the fully-qualified name of the GitService's GetCommit RPC.
GitServiceGetCommitProcedure = "/simplegit.v1.GitService/GetCommit"
// GitServiceGetCommitDiffProcedure is the fully-qualified name of the GitService's GetCommitDiff
// RPC.
GitServiceGetCommitDiffProcedure = "/simplegit.v1.GitService/GetCommitDiff"
// GitServiceGetTreeProcedure is the fully-qualified name of the GitService's GetTree RPC.
GitServiceGetTreeProcedure = "/simplegit.v1.GitService/GetTree"
// GitServiceGetBlobProcedure is the fully-qualified name of the GitService's GetBlob RPC.
GitServiceGetBlobProcedure = "/simplegit.v1.GitService/GetBlob"
// GitServiceCompareProcedure is the fully-qualified name of the GitService's Compare RPC.
GitServiceCompareProcedure = "/simplegit.v1.GitService/Compare"
// GitServiceBlameProcedure is the fully-qualified name of the GitService's Blame RPC.
GitServiceBlameProcedure = "/simplegit.v1.GitService/Blame"
// GitServiceGetContributorsProcedure is the fully-qualified name of the GitService's
// GetContributors RPC.
GitServiceGetContributorsProcedure = "/simplegit.v1.GitService/GetContributors"
// GitServiceGetStatsProcedure is the fully-qualified name of the GitService's GetStats RPC.
GitServiceGetStatsProcedure = "/simplegit.v1.GitService/GetStats"
// GitServiceCountObjectsProcedure is the fully-qualified name of the GitService's CountObjects RPC.
GitServiceCountObjectsProcedure = "/simplegit.v1.GitService/CountObjects"
// GitServiceCreateFileProcedure is the fully-qualified name of the GitService's CreateFile RPC.
GitServiceCreateFileProcedure = "/simplegit.v1.GitService/CreateFile"
// GitServiceDeleteFileProcedure is the fully-qualified name of the GitService's DeleteFile RPC.
GitServiceDeleteFileProcedure = "/simplegit.v1.GitService/DeleteFile"
// GitServiceMergeProcedure is the fully-qualified name of the GitService's Merge RPC.
GitServiceMergeProcedure = "/simplegit.v1.GitService/Merge"
// ManageServiceCreateRepoProcedure is the fully-qualified name of the ManageService's CreateRepo
// RPC.
ManageServiceCreateRepoProcedure = "/simplegit.v1.ManageService/CreateRepo"
// ManageServiceExistRepoProcedure is the fully-qualified name of the ManageService's ExistRepo RPC.
ManageServiceExistRepoProcedure = "/simplegit.v1.ManageService/ExistRepo"
// ManageServiceDeleteRepoProcedure is the fully-qualified name of the ManageService's DeleteRepo
// RPC.
ManageServiceDeleteRepoProcedure = "/simplegit.v1.ManageService/DeleteRepo"
// ManageServiceMoveRepoProcedure is the fully-qualified name of the ManageService's MoveRepo RPC.
ManageServiceMoveRepoProcedure = "/simplegit.v1.ManageService/MoveRepo"
// ManageServiceMoveNSProcedure is the fully-qualified name of the ManageService's MoveNS RPC.
ManageServiceMoveNSProcedure = "/simplegit.v1.ManageService/MoveNS"
// ManageServiceACLUpsertSSHKeyOnNSProcedure is the fully-qualified name of the ManageService's
// ACLUpsertSSHKeyOnNS RPC.
ManageServiceACLUpsertSSHKeyOnNSProcedure = "/simplegit.v1.ManageService/ACLUpsertSSHKeyOnNS"
// ManageServiceACLUpsertPATOnNSProcedure is the fully-qualified name of the ManageService's
// ACLUpsertPATOnNS RPC.
ManageServiceACLUpsertPATOnNSProcedure = "/simplegit.v1.ManageService/ACLUpsertPATOnNS"
// ManageServiceACLUpsertSSHKeyOnRepoProcedure is the fully-qualified name of the ManageService's
// ACLUpsertSSHKeyOnRepo RPC.
ManageServiceACLUpsertSSHKeyOnRepoProcedure = "/simplegit.v1.ManageService/ACLUpsertSSHKeyOnRepo"
// ManageServiceACLUpsertPATOnRepoProcedure is the fully-qualified name of the ManageService's
// ACLUpsertPATOnRepo RPC.
ManageServiceACLUpsertPATOnRepoProcedure = "/simplegit.v1.ManageService/ACLUpsertPATOnRepo"
// ManageServiceACLDeleteProcedure is the fully-qualified name of the ManageService's ACLDelete RPC.
ManageServiceACLDeleteProcedure = "/simplegit.v1.ManageService/ACLDelete"
// ManageServiceStatusProcedure is the fully-qualified name of the ManageService's Status RPC.
ManageServiceStatusProcedure = "/simplegit.v1.ManageService/Status"
)
// GitServiceClient is a client for the simplegit.v1.GitService service.
type GitServiceClient interface {
// repo.listBranches
ListBranches(context.Context, *connect.Request[v1.RepoRequest]) (*connect.Response[v1.ListBranchesResponse], error)
// repo.listTags
ListTags(context.Context, *connect.Request[v1.RepoRequest]) (*connect.Response[v1.ListTagsResponse], error)
// repo.listCommits
ListCommits(context.Context, *connect.Request[v1.ListCommitsRequest]) (*connect.Response[v1.ListCommitsResponse], error)
// repo.listCommitsByPath
ListCommitsByPath(context.Context, *connect.Request[v1.ListCommitsByPathRequest]) (*connect.Response[v1.ListCommitsResponse], error)
// repo.getCommit
GetCommit(context.Context, *connect.Request[v1.GetCommitRequest]) (*connect.Response[v1.CommitDetail], error)
// repo.getCommitDiff
GetCommitDiff(context.Context, *connect.Request[v1.GetCommitDiffRequest]) (*connect.Response[v1.DiffResult], error)
// repo.getTree
GetTree(context.Context, *connect.Request[v1.GetTreeRequest]) (*connect.Response[v1.Tree], error)
// repo.getBlob
GetBlob(context.Context, *connect.Request[v1.GetBlobRequest]) (*connect.Response[v1.Blob], error)
// repo.compare
Compare(context.Context, *connect.Request[v1.CompareRequest]) (*connect.Response[v1.CompareResult], error)
// repo.blame
Blame(context.Context, *connect.Request[v1.BlameRequest]) (*connect.Response[v1.BlameResult], error)
// repo.getContributors
GetContributors(context.Context, *connect.Request[v1.GetContributorsRequest]) (*connect.Response[v1.GetContributorsResponse], error)
// repo.getStats
GetStats(context.Context, *connect.Request[v1.RepoRequest]) (*connect.Response[v1.RepoStats], error)
// repo.countObjects
CountObjects(context.Context, *connect.Request[v1.RepoRequest]) (*connect.Response[v1.CountObjectsResult], error)
// repo.createFile
CreateFile(context.Context, *connect.Request[v1.CreateFileRequest]) (*connect.Response[v1.FileCommitResult], error)
// repo.deleteFile
DeleteFile(context.Context, *connect.Request[v1.DeleteFileRequest]) (*connect.Response[v1.FileCommitResult], error)
// repo.merge
Merge(context.Context, *connect.Request[v1.MergeRequest]) (*connect.Response[v1.MergeResult], error)
}
// NewGitServiceClient constructs a client for the simplegit.v1.GitService service. By default, it
// uses the Connect protocol with the binary Protobuf Codec, asks for gzipped responses, and sends
// uncompressed requests. To use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or
// connect.WithGRPCWeb() options.
//
// The URL supplied here should be the base URL for the Connect or gRPC server (for example,
// http://api.acme.com or https://acme.com/grpc).
func NewGitServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) GitServiceClient {
baseURL = strings.TrimRight(baseURL, "/")
gitServiceMethods := v1.File_gitrpc_gitrpc_proto.Services().ByName("GitService").Methods()
return &gitServiceClient{
listBranches: connect.NewClient[v1.RepoRequest, v1.ListBranchesResponse](
httpClient,
baseURL+GitServiceListBranchesProcedure,
connect.WithSchema(gitServiceMethods.ByName("ListBranches")),
connect.WithClientOptions(opts...),
),
listTags: connect.NewClient[v1.RepoRequest, v1.ListTagsResponse](
httpClient,
baseURL+GitServiceListTagsProcedure,
connect.WithSchema(gitServiceMethods.ByName("ListTags")),
connect.WithClientOptions(opts...),
),
listCommits: connect.NewClient[v1.ListCommitsRequest, v1.ListCommitsResponse](
httpClient,
baseURL+GitServiceListCommitsProcedure,
connect.WithSchema(gitServiceMethods.ByName("ListCommits")),
connect.WithClientOptions(opts...),
),
listCommitsByPath: connect.NewClient[v1.ListCommitsByPathRequest, v1.ListCommitsResponse](
httpClient,
baseURL+GitServiceListCommitsByPathProcedure,
connect.WithSchema(gitServiceMethods.ByName("ListCommitsByPath")),
connect.WithClientOptions(opts...),
),
getCommit: connect.NewClient[v1.GetCommitRequest, v1.CommitDetail](
httpClient,
baseURL+GitServiceGetCommitProcedure,
connect.WithSchema(gitServiceMethods.ByName("GetCommit")),
connect.WithClientOptions(opts...),
),
getCommitDiff: connect.NewClient[v1.GetCommitDiffRequest, v1.DiffResult](
httpClient,
baseURL+GitServiceGetCommitDiffProcedure,
connect.WithSchema(gitServiceMethods.ByName("GetCommitDiff")),
connect.WithClientOptions(opts...),
),
getTree: connect.NewClient[v1.GetTreeRequest, v1.Tree](
httpClient,
baseURL+GitServiceGetTreeProcedure,
connect.WithSchema(gitServiceMethods.ByName("GetTree")),
connect.WithClientOptions(opts...),
),
getBlob: connect.NewClient[v1.GetBlobRequest, v1.Blob](
httpClient,
baseURL+GitServiceGetBlobProcedure,
connect.WithSchema(gitServiceMethods.ByName("GetBlob")),
connect.WithClientOptions(opts...),
),
compare: connect.NewClient[v1.CompareRequest, v1.CompareResult](
httpClient,
baseURL+GitServiceCompareProcedure,
connect.WithSchema(gitServiceMethods.ByName("Compare")),
connect.WithClientOptions(opts...),
),
blame: connect.NewClient[v1.BlameRequest, v1.BlameResult](
httpClient,
baseURL+GitServiceBlameProcedure,
connect.WithSchema(gitServiceMethods.ByName("Blame")),
connect.WithClientOptions(opts...),
),
getContributors: connect.NewClient[v1.GetContributorsRequest, v1.GetContributorsResponse](
httpClient,
baseURL+GitServiceGetContributorsProcedure,
connect.WithSchema(gitServiceMethods.ByName("GetContributors")),
connect.WithClientOptions(opts...),
),
getStats: connect.NewClient[v1.RepoRequest, v1.RepoStats](
httpClient,
baseURL+GitServiceGetStatsProcedure,
connect.WithSchema(gitServiceMethods.ByName("GetStats")),
connect.WithClientOptions(opts...),
),
countObjects: connect.NewClient[v1.RepoRequest, v1.CountObjectsResult](
httpClient,
baseURL+GitServiceCountObjectsProcedure,
connect.WithSchema(gitServiceMethods.ByName("CountObjects")),
connect.WithClientOptions(opts...),
),
createFile: connect.NewClient[v1.CreateFileRequest, v1.FileCommitResult](
httpClient,
baseURL+GitServiceCreateFileProcedure,
connect.WithSchema(gitServiceMethods.ByName("CreateFile")),
connect.WithClientOptions(opts...),
),
deleteFile: connect.NewClient[v1.DeleteFileRequest, v1.FileCommitResult](
httpClient,
baseURL+GitServiceDeleteFileProcedure,
connect.WithSchema(gitServiceMethods.ByName("DeleteFile")),
connect.WithClientOptions(opts...),
),
merge: connect.NewClient[v1.MergeRequest, v1.MergeResult](
httpClient,
baseURL+GitServiceMergeProcedure,
connect.WithSchema(gitServiceMethods.ByName("Merge")),
connect.WithClientOptions(opts...),
),
}
}
// gitServiceClient implements GitServiceClient.
type gitServiceClient struct {
listBranches *connect.Client[v1.RepoRequest, v1.ListBranchesResponse]
listTags *connect.Client[v1.RepoRequest, v1.ListTagsResponse]
listCommits *connect.Client[v1.ListCommitsRequest, v1.ListCommitsResponse]
listCommitsByPath *connect.Client[v1.ListCommitsByPathRequest, v1.ListCommitsResponse]
getCommit *connect.Client[v1.GetCommitRequest, v1.CommitDetail]
getCommitDiff *connect.Client[v1.GetCommitDiffRequest, v1.DiffResult]
getTree *connect.Client[v1.GetTreeRequest, v1.Tree]
getBlob *connect.Client[v1.GetBlobRequest, v1.Blob]
compare *connect.Client[v1.CompareRequest, v1.CompareResult]
blame *connect.Client[v1.BlameRequest, v1.BlameResult]
getContributors *connect.Client[v1.GetContributorsRequest, v1.GetContributorsResponse]
getStats *connect.Client[v1.RepoRequest, v1.RepoStats]
countObjects *connect.Client[v1.RepoRequest, v1.CountObjectsResult]
createFile *connect.Client[v1.CreateFileRequest, v1.FileCommitResult]
deleteFile *connect.Client[v1.DeleteFileRequest, v1.FileCommitResult]
merge *connect.Client[v1.MergeRequest, v1.MergeResult]
}
// ListBranches calls simplegit.v1.GitService.ListBranches.
func (c *gitServiceClient) ListBranches(ctx context.Context, req *connect.Request[v1.RepoRequest]) (*connect.Response[v1.ListBranchesResponse], error) {
return c.listBranches.CallUnary(ctx, req)
}
// ListTags calls simplegit.v1.GitService.ListTags.
func (c *gitServiceClient) ListTags(ctx context.Context, req *connect.Request[v1.RepoRequest]) (*connect.Response[v1.ListTagsResponse], error) {
return c.listTags.CallUnary(ctx, req)
}
// ListCommits calls simplegit.v1.GitService.ListCommits.
func (c *gitServiceClient) ListCommits(ctx context.Context, req *connect.Request[v1.ListCommitsRequest]) (*connect.Response[v1.ListCommitsResponse], error) {
return c.listCommits.CallUnary(ctx, req)
}
// ListCommitsByPath calls simplegit.v1.GitService.ListCommitsByPath.
func (c *gitServiceClient) ListCommitsByPath(ctx context.Context, req *connect.Request[v1.ListCommitsByPathRequest]) (*connect.Response[v1.ListCommitsResponse], error) {
return c.listCommitsByPath.CallUnary(ctx, req)
}
// GetCommit calls simplegit.v1.GitService.GetCommit.
func (c *gitServiceClient) GetCommit(ctx context.Context, req *connect.Request[v1.GetCommitRequest]) (*connect.Response[v1.CommitDetail], error) {
return c.getCommit.CallUnary(ctx, req)
}
// GetCommitDiff calls simplegit.v1.GitService.GetCommitDiff.
func (c *gitServiceClient) GetCommitDiff(ctx context.Context, req *connect.Request[v1.GetCommitDiffRequest]) (*connect.Response[v1.DiffResult], error) {
return c.getCommitDiff.CallUnary(ctx, req)
}
// GetTree calls simplegit.v1.GitService.GetTree.
func (c *gitServiceClient) GetTree(ctx context.Context, req *connect.Request[v1.GetTreeRequest]) (*connect.Response[v1.Tree], error) {
return c.getTree.CallUnary(ctx, req)
}
// GetBlob calls simplegit.v1.GitService.GetBlob.
func (c *gitServiceClient) GetBlob(ctx context.Context, req *connect.Request[v1.GetBlobRequest]) (*connect.Response[v1.Blob], error) {
return c.getBlob.CallUnary(ctx, req)
}
// Compare calls simplegit.v1.GitService.Compare.
func (c *gitServiceClient) Compare(ctx context.Context, req *connect.Request[v1.CompareRequest]) (*connect.Response[v1.CompareResult], error) {
return c.compare.CallUnary(ctx, req)
}
// Blame calls simplegit.v1.GitService.Blame.
func (c *gitServiceClient) Blame(ctx context.Context, req *connect.Request[v1.BlameRequest]) (*connect.Response[v1.BlameResult], error) {
return c.blame.CallUnary(ctx, req)
}
// GetContributors calls simplegit.v1.GitService.GetContributors.
func (c *gitServiceClient) GetContributors(ctx context.Context, req *connect.Request[v1.GetContributorsRequest]) (*connect.Response[v1.GetContributorsResponse], error) {
return c.getContributors.CallUnary(ctx, req)
}
// GetStats calls simplegit.v1.GitService.GetStats.
func (c *gitServiceClient) GetStats(ctx context.Context, req *connect.Request[v1.RepoRequest]) (*connect.Response[v1.RepoStats], error) {
return c.getStats.CallUnary(ctx, req)
}
// CountObjects calls simplegit.v1.GitService.CountObjects.
func (c *gitServiceClient) CountObjects(ctx context.Context, req *connect.Request[v1.RepoRequest]) (*connect.Response[v1.CountObjectsResult], error) {
return c.countObjects.CallUnary(ctx, req)
}
// CreateFile calls simplegit.v1.GitService.CreateFile.
func (c *gitServiceClient) CreateFile(ctx context.Context, req *connect.Request[v1.CreateFileRequest]) (*connect.Response[v1.FileCommitResult], error) {
return c.createFile.CallUnary(ctx, req)
}
// DeleteFile calls simplegit.v1.GitService.DeleteFile.
func (c *gitServiceClient) DeleteFile(ctx context.Context, req *connect.Request[v1.DeleteFileRequest]) (*connect.Response[v1.FileCommitResult], error) {
return c.deleteFile.CallUnary(ctx, req)
}
// Merge calls simplegit.v1.GitService.Merge.
func (c *gitServiceClient) Merge(ctx context.Context, req *connect.Request[v1.MergeRequest]) (*connect.Response[v1.MergeResult], error) {
return c.merge.CallUnary(ctx, req)
}
// GitServiceHandler is an implementation of the simplegit.v1.GitService service.
type GitServiceHandler interface {
// repo.listBranches
ListBranches(context.Context, *connect.Request[v1.RepoRequest]) (*connect.Response[v1.ListBranchesResponse], error)
// repo.listTags
ListTags(context.Context, *connect.Request[v1.RepoRequest]) (*connect.Response[v1.ListTagsResponse], error)
// repo.listCommits
ListCommits(context.Context, *connect.Request[v1.ListCommitsRequest]) (*connect.Response[v1.ListCommitsResponse], error)
// repo.listCommitsByPath
ListCommitsByPath(context.Context, *connect.Request[v1.ListCommitsByPathRequest]) (*connect.Response[v1.ListCommitsResponse], error)
// repo.getCommit
GetCommit(context.Context, *connect.Request[v1.GetCommitRequest]) (*connect.Response[v1.CommitDetail], error)
// repo.getCommitDiff
GetCommitDiff(context.Context, *connect.Request[v1.GetCommitDiffRequest]) (*connect.Response[v1.DiffResult], error)
// repo.getTree
GetTree(context.Context, *connect.Request[v1.GetTreeRequest]) (*connect.Response[v1.Tree], error)
// repo.getBlob
GetBlob(context.Context, *connect.Request[v1.GetBlobRequest]) (*connect.Response[v1.Blob], error)
// repo.compare
Compare(context.Context, *connect.Request[v1.CompareRequest]) (*connect.Response[v1.CompareResult], error)
// repo.blame
Blame(context.Context, *connect.Request[v1.BlameRequest]) (*connect.Response[v1.BlameResult], error)
// repo.getContributors
GetContributors(context.Context, *connect.Request[v1.GetContributorsRequest]) (*connect.Response[v1.GetContributorsResponse], error)
// repo.getStats
GetStats(context.Context, *connect.Request[v1.RepoRequest]) (*connect.Response[v1.RepoStats], error)
// repo.countObjects
CountObjects(context.Context, *connect.Request[v1.RepoRequest]) (*connect.Response[v1.CountObjectsResult], error)
// repo.createFile
CreateFile(context.Context, *connect.Request[v1.CreateFileRequest]) (*connect.Response[v1.FileCommitResult], error)
// repo.deleteFile
DeleteFile(context.Context, *connect.Request[v1.DeleteFileRequest]) (*connect.Response[v1.FileCommitResult], error)
// repo.merge
Merge(context.Context, *connect.Request[v1.MergeRequest]) (*connect.Response[v1.MergeResult], error)
}
// NewGitServiceHandler builds an HTTP handler from the service implementation. It returns the path
// on which to mount the handler and the handler itself.
//
// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf
// and JSON codecs. They also support gzip compression.
func NewGitServiceHandler(svc GitServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) {
gitServiceMethods := v1.File_gitrpc_gitrpc_proto.Services().ByName("GitService").Methods()
gitServiceListBranchesHandler := connect.NewUnaryHandler(
GitServiceListBranchesProcedure,
svc.ListBranches,
connect.WithSchema(gitServiceMethods.ByName("ListBranches")),
connect.WithHandlerOptions(opts...),
)
gitServiceListTagsHandler := connect.NewUnaryHandler(
GitServiceListTagsProcedure,
svc.ListTags,
connect.WithSchema(gitServiceMethods.ByName("ListTags")),
connect.WithHandlerOptions(opts...),
)
gitServiceListCommitsHandler := connect.NewUnaryHandler(
GitServiceListCommitsProcedure,
svc.ListCommits,
connect.WithSchema(gitServiceMethods.ByName("ListCommits")),
connect.WithHandlerOptions(opts...),
)
gitServiceListCommitsByPathHandler := connect.NewUnaryHandler(
GitServiceListCommitsByPathProcedure,
svc.ListCommitsByPath,
connect.WithSchema(gitServiceMethods.ByName("ListCommitsByPath")),
connect.WithHandlerOptions(opts...),
)
gitServiceGetCommitHandler := connect.NewUnaryHandler(
GitServiceGetCommitProcedure,
svc.GetCommit,
connect.WithSchema(gitServiceMethods.ByName("GetCommit")),
connect.WithHandlerOptions(opts...),
)
gitServiceGetCommitDiffHandler := connect.NewUnaryHandler(
GitServiceGetCommitDiffProcedure,
svc.GetCommitDiff,
connect.WithSchema(gitServiceMethods.ByName("GetCommitDiff")),
connect.WithHandlerOptions(opts...),
)
gitServiceGetTreeHandler := connect.NewUnaryHandler(
GitServiceGetTreeProcedure,
svc.GetTree,
connect.WithSchema(gitServiceMethods.ByName("GetTree")),
connect.WithHandlerOptions(opts...),
)
gitServiceGetBlobHandler := connect.NewUnaryHandler(
GitServiceGetBlobProcedure,
svc.GetBlob,
connect.WithSchema(gitServiceMethods.ByName("GetBlob")),
connect.WithHandlerOptions(opts...),
)
gitServiceCompareHandler := connect.NewUnaryHandler(
GitServiceCompareProcedure,
svc.Compare,
connect.WithSchema(gitServiceMethods.ByName("Compare")),
connect.WithHandlerOptions(opts...),
)
gitServiceBlameHandler := connect.NewUnaryHandler(
GitServiceBlameProcedure,
svc.Blame,
connect.WithSchema(gitServiceMethods.ByName("Blame")),
connect.WithHandlerOptions(opts...),
)
gitServiceGetContributorsHandler := connect.NewUnaryHandler(
GitServiceGetContributorsProcedure,
svc.GetContributors,
connect.WithSchema(gitServiceMethods.ByName("GetContributors")),
connect.WithHandlerOptions(opts...),
)
gitServiceGetStatsHandler := connect.NewUnaryHandler(
GitServiceGetStatsProcedure,
svc.GetStats,
connect.WithSchema(gitServiceMethods.ByName("GetStats")),
connect.WithHandlerOptions(opts...),
)
gitServiceCountObjectsHandler := connect.NewUnaryHandler(
GitServiceCountObjectsProcedure,
svc.CountObjects,
connect.WithSchema(gitServiceMethods.ByName("CountObjects")),
connect.WithHandlerOptions(opts...),
)
gitServiceCreateFileHandler := connect.NewUnaryHandler(
GitServiceCreateFileProcedure,
svc.CreateFile,
connect.WithSchema(gitServiceMethods.ByName("CreateFile")),
connect.WithHandlerOptions(opts...),
)
gitServiceDeleteFileHandler := connect.NewUnaryHandler(
GitServiceDeleteFileProcedure,
svc.DeleteFile,
connect.WithSchema(gitServiceMethods.ByName("DeleteFile")),
connect.WithHandlerOptions(opts...),
)
gitServiceMergeHandler := connect.NewUnaryHandler(
GitServiceMergeProcedure,
svc.Merge,
connect.WithSchema(gitServiceMethods.ByName("Merge")),
connect.WithHandlerOptions(opts...),
)
return "/simplegit.v1.GitService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
switch r.URL.Path {
case GitServiceListBranchesProcedure:
gitServiceListBranchesHandler.ServeHTTP(w, r)
case GitServiceListTagsProcedure:
gitServiceListTagsHandler.ServeHTTP(w, r)
case GitServiceListCommitsProcedure:
gitServiceListCommitsHandler.ServeHTTP(w, r)
case GitServiceListCommitsByPathProcedure:
gitServiceListCommitsByPathHandler.ServeHTTP(w, r)
case GitServiceGetCommitProcedure:
gitServiceGetCommitHandler.ServeHTTP(w, r)
case GitServiceGetCommitDiffProcedure:
gitServiceGetCommitDiffHandler.ServeHTTP(w, r)
case GitServiceGetTreeProcedure:
gitServiceGetTreeHandler.ServeHTTP(w, r)
case GitServiceGetBlobProcedure:
gitServiceGetBlobHandler.ServeHTTP(w, r)
case GitServiceCompareProcedure:
gitServiceCompareHandler.ServeHTTP(w, r)
case GitServiceBlameProcedure:
gitServiceBlameHandler.ServeHTTP(w, r)
case GitServiceGetContributorsProcedure:
gitServiceGetContributorsHandler.ServeHTTP(w, r)
case GitServiceGetStatsProcedure:
gitServiceGetStatsHandler.ServeHTTP(w, r)
case GitServiceCountObjectsProcedure:
gitServiceCountObjectsHandler.ServeHTTP(w, r)
case GitServiceCreateFileProcedure:
gitServiceCreateFileHandler.ServeHTTP(w, r)
case GitServiceDeleteFileProcedure:
gitServiceDeleteFileHandler.ServeHTTP(w, r)
case GitServiceMergeProcedure:
gitServiceMergeHandler.ServeHTTP(w, r)
default:
http.NotFound(w, r)
}
})
}
// UnimplementedGitServiceHandler returns CodeUnimplemented from all methods.
type UnimplementedGitServiceHandler struct{}
func (UnimplementedGitServiceHandler) ListBranches(context.Context, *connect.Request[v1.RepoRequest]) (*connect.Response[v1.ListBranchesResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.ListBranches is not implemented"))
}
func (UnimplementedGitServiceHandler) ListTags(context.Context, *connect.Request[v1.RepoRequest]) (*connect.Response[v1.ListTagsResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.ListTags is not implemented"))
}
func (UnimplementedGitServiceHandler) ListCommits(context.Context, *connect.Request[v1.ListCommitsRequest]) (*connect.Response[v1.ListCommitsResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.ListCommits is not implemented"))
}
func (UnimplementedGitServiceHandler) ListCommitsByPath(context.Context, *connect.Request[v1.ListCommitsByPathRequest]) (*connect.Response[v1.ListCommitsResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.ListCommitsByPath is not implemented"))
}
func (UnimplementedGitServiceHandler) GetCommit(context.Context, *connect.Request[v1.GetCommitRequest]) (*connect.Response[v1.CommitDetail], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.GetCommit is not implemented"))
}
func (UnimplementedGitServiceHandler) GetCommitDiff(context.Context, *connect.Request[v1.GetCommitDiffRequest]) (*connect.Response[v1.DiffResult], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.GetCommitDiff is not implemented"))
}
func (UnimplementedGitServiceHandler) GetTree(context.Context, *connect.Request[v1.GetTreeRequest]) (*connect.Response[v1.Tree], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.GetTree is not implemented"))
}
func (UnimplementedGitServiceHandler) GetBlob(context.Context, *connect.Request[v1.GetBlobRequest]) (*connect.Response[v1.Blob], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.GetBlob is not implemented"))
}
func (UnimplementedGitServiceHandler) Compare(context.Context, *connect.Request[v1.CompareRequest]) (*connect.Response[v1.CompareResult], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.Compare is not implemented"))
}
func (UnimplementedGitServiceHandler) Blame(context.Context, *connect.Request[v1.BlameRequest]) (*connect.Response[v1.BlameResult], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.Blame is not implemented"))
}
func (UnimplementedGitServiceHandler) GetContributors(context.Context, *connect.Request[v1.GetContributorsRequest]) (*connect.Response[v1.GetContributorsResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.GetContributors is not implemented"))
}
func (UnimplementedGitServiceHandler) GetStats(context.Context, *connect.Request[v1.RepoRequest]) (*connect.Response[v1.RepoStats], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.GetStats is not implemented"))
}
func (UnimplementedGitServiceHandler) CountObjects(context.Context, *connect.Request[v1.RepoRequest]) (*connect.Response[v1.CountObjectsResult], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.CountObjects is not implemented"))
}
func (UnimplementedGitServiceHandler) CreateFile(context.Context, *connect.Request[v1.CreateFileRequest]) (*connect.Response[v1.FileCommitResult], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.CreateFile is not implemented"))
}
func (UnimplementedGitServiceHandler) DeleteFile(context.Context, *connect.Request[v1.DeleteFileRequest]) (*connect.Response[v1.FileCommitResult], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.DeleteFile is not implemented"))
}
func (UnimplementedGitServiceHandler) Merge(context.Context, *connect.Request[v1.MergeRequest]) (*connect.Response[v1.MergeResult], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.GitService.Merge is not implemented"))
}
// ManageServiceClient is a client for the simplegit.v1.ManageService service.
type ManageServiceClient interface {
// Create a repo (git init --bare). Reuses the namespace's NamespaceID if it
// exists, else mints a new one.
CreateRepo(context.Context, *connect.Request[v1.CreateRepoRequest]) (*connect.Response[emptypb.Empty], error)
// OK if the repo is registered; NotFound otherwise.
ExistRepo(context.Context, *connect.Request[v1.ExistRepoRequest]) (*connect.Response[emptypb.Empty], error)
// Remove a repo (DB row + repo-targeted ACL grants + on-disk dir).
DeleteRepo(context.Context, *connect.Request[v1.DeleteRepoRequest]) (*connect.Response[emptypb.Empty], error)
// Move/rename a repo (transfer and/or rename).
MoveRepo(context.Context, *connect.Request[v1.MoveRepoRequest]) (*connect.Response[emptypb.Empty], error)
// Rename a namespace (all its repos); NamespaceID is stable.
MoveNS(context.Context, *connect.Request[v1.MoveNSRequest]) (*connect.Response[emptypb.Empty], error)
// Grant an SSH key perm on a namespace; registers the key if new. Returns the ACL id.
ACLUpsertSSHKeyOnNS(context.Context, *connect.Request[v1.ACLUpsertSSHKeyOnNSRequest]) (*connect.Response[v1.ACLIDResponse], error)
// Grant a PAT perm on a namespace; creates the PAT if new. Returns the ACL id.
ACLUpsertPATOnNS(context.Context, *connect.Request[v1.ACLUpsertPATOnNSRequest]) (*connect.Response[v1.ACLIDResponse], error)
// Grant an SSH key perm on a repo; registers the key if new. Returns the ACL id.
ACLUpsertSSHKeyOnRepo(context.Context, *connect.Request[v1.ACLUpsertSSHKeyOnRepoRequest]) (*connect.Response[v1.ACLIDResponse], error)
// Grant a PAT perm on a repo; creates the PAT if new. Returns the ACL id.
ACLUpsertPATOnRepo(context.Context, *connect.Request[v1.ACLUpsertPATOnRepoRequest]) (*connect.Response[v1.ACLIDResponse], error)
// Remove a single ACL grant by id.
ACLDelete(context.Context, *connect.Request[v1.ACLDeleteRequest]) (*connect.Response[emptypb.Empty], error)
// Daemon status + config: startup params, listen locations, start time /
// uptime, and the state DB URI (gitctl uses db_uri to connect directly for
// inspection reads -- there is no list RPC on this service). Diagnostics only;
// does not touch the DB.
Status(context.Context, *connect.Request[emptypb.Empty]) (*connect.Response[v1.StatusResponse], error)
}
// NewManageServiceClient constructs a client for the simplegit.v1.ManageService service. By
// default, it uses the Connect protocol with the binary Protobuf Codec, asks for gzipped responses,
// and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply the
// connect.WithGRPC() or connect.WithGRPCWeb() options.
//
// The URL supplied here should be the base URL for the Connect or gRPC server (for example,
// http://api.acme.com or https://acme.com/grpc).
func NewManageServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) ManageServiceClient {
baseURL = strings.TrimRight(baseURL, "/")
manageServiceMethods := v1.File_gitrpc_gitrpc_proto.Services().ByName("ManageService").Methods()
return &manageServiceClient{
createRepo: connect.NewClient[v1.CreateRepoRequest, emptypb.Empty](
httpClient,
baseURL+ManageServiceCreateRepoProcedure,
connect.WithSchema(manageServiceMethods.ByName("CreateRepo")),
connect.WithClientOptions(opts...),
),
existRepo: connect.NewClient[v1.ExistRepoRequest, emptypb.Empty](
httpClient,
baseURL+ManageServiceExistRepoProcedure,
connect.WithSchema(manageServiceMethods.ByName("ExistRepo")),
connect.WithClientOptions(opts...),
),
deleteRepo: connect.NewClient[v1.DeleteRepoRequest, emptypb.Empty](
httpClient,
baseURL+ManageServiceDeleteRepoProcedure,
connect.WithSchema(manageServiceMethods.ByName("DeleteRepo")),
connect.WithClientOptions(opts...),
),
moveRepo: connect.NewClient[v1.MoveRepoRequest, emptypb.Empty](
httpClient,
baseURL+ManageServiceMoveRepoProcedure,
connect.WithSchema(manageServiceMethods.ByName("MoveRepo")),
connect.WithClientOptions(opts...),
),
moveNS: connect.NewClient[v1.MoveNSRequest, emptypb.Empty](
httpClient,
baseURL+ManageServiceMoveNSProcedure,
connect.WithSchema(manageServiceMethods.ByName("MoveNS")),
connect.WithClientOptions(opts...),
),
aCLUpsertSSHKeyOnNS: connect.NewClient[v1.ACLUpsertSSHKeyOnNSRequest, v1.ACLIDResponse](
httpClient,
baseURL+ManageServiceACLUpsertSSHKeyOnNSProcedure,
connect.WithSchema(manageServiceMethods.ByName("ACLUpsertSSHKeyOnNS")),
connect.WithClientOptions(opts...),
),
aCLUpsertPATOnNS: connect.NewClient[v1.ACLUpsertPATOnNSRequest, v1.ACLIDResponse](
httpClient,
baseURL+ManageServiceACLUpsertPATOnNSProcedure,
connect.WithSchema(manageServiceMethods.ByName("ACLUpsertPATOnNS")),
connect.WithClientOptions(opts...),
),
aCLUpsertSSHKeyOnRepo: connect.NewClient[v1.ACLUpsertSSHKeyOnRepoRequest, v1.ACLIDResponse](
httpClient,
baseURL+ManageServiceACLUpsertSSHKeyOnRepoProcedure,
connect.WithSchema(manageServiceMethods.ByName("ACLUpsertSSHKeyOnRepo")),
connect.WithClientOptions(opts...),
),
aCLUpsertPATOnRepo: connect.NewClient[v1.ACLUpsertPATOnRepoRequest, v1.ACLIDResponse](
httpClient,
baseURL+ManageServiceACLUpsertPATOnRepoProcedure,
connect.WithSchema(manageServiceMethods.ByName("ACLUpsertPATOnRepo")),
connect.WithClientOptions(opts...),
),
aCLDelete: connect.NewClient[v1.ACLDeleteRequest, emptypb.Empty](
httpClient,
baseURL+ManageServiceACLDeleteProcedure,
connect.WithSchema(manageServiceMethods.ByName("ACLDelete")),
connect.WithClientOptions(opts...),
),
status: connect.NewClient[emptypb.Empty, v1.StatusResponse](
httpClient,
baseURL+ManageServiceStatusProcedure,
connect.WithSchema(manageServiceMethods.ByName("Status")),
connect.WithClientOptions(opts...),
),
}
}
// manageServiceClient implements ManageServiceClient.
type manageServiceClient struct {
createRepo *connect.Client[v1.CreateRepoRequest, emptypb.Empty]
existRepo *connect.Client[v1.ExistRepoRequest, emptypb.Empty]
deleteRepo *connect.Client[v1.DeleteRepoRequest, emptypb.Empty]
moveRepo *connect.Client[v1.MoveRepoRequest, emptypb.Empty]
moveNS *connect.Client[v1.MoveNSRequest, emptypb.Empty]
aCLUpsertSSHKeyOnNS *connect.Client[v1.ACLUpsertSSHKeyOnNSRequest, v1.ACLIDResponse]
aCLUpsertPATOnNS *connect.Client[v1.ACLUpsertPATOnNSRequest, v1.ACLIDResponse]
aCLUpsertSSHKeyOnRepo *connect.Client[v1.ACLUpsertSSHKeyOnRepoRequest, v1.ACLIDResponse]
aCLUpsertPATOnRepo *connect.Client[v1.ACLUpsertPATOnRepoRequest, v1.ACLIDResponse]
aCLDelete *connect.Client[v1.ACLDeleteRequest, emptypb.Empty]
status *connect.Client[emptypb.Empty, v1.StatusResponse]
}
// CreateRepo calls simplegit.v1.ManageService.CreateRepo.
func (c *manageServiceClient) CreateRepo(ctx context.Context, req *connect.Request[v1.CreateRepoRequest]) (*connect.Response[emptypb.Empty], error) {
return c.createRepo.CallUnary(ctx, req)
}
// ExistRepo calls simplegit.v1.ManageService.ExistRepo.
func (c *manageServiceClient) ExistRepo(ctx context.Context, req *connect.Request[v1.ExistRepoRequest]) (*connect.Response[emptypb.Empty], error) {
return c.existRepo.CallUnary(ctx, req)
}
// DeleteRepo calls simplegit.v1.ManageService.DeleteRepo.
func (c *manageServiceClient) DeleteRepo(ctx context.Context, req *connect.Request[v1.DeleteRepoRequest]) (*connect.Response[emptypb.Empty], error) {
return c.deleteRepo.CallUnary(ctx, req)
}
// MoveRepo calls simplegit.v1.ManageService.MoveRepo.
func (c *manageServiceClient) MoveRepo(ctx context.Context, req *connect.Request[v1.MoveRepoRequest]) (*connect.Response[emptypb.Empty], error) {
return c.moveRepo.CallUnary(ctx, req)
}
// MoveNS calls simplegit.v1.ManageService.MoveNS.
func (c *manageServiceClient) MoveNS(ctx context.Context, req *connect.Request[v1.MoveNSRequest]) (*connect.Response[emptypb.Empty], error) {
return c.moveNS.CallUnary(ctx, req)
}
// ACLUpsertSSHKeyOnNS calls simplegit.v1.ManageService.ACLUpsertSSHKeyOnNS.
func (c *manageServiceClient) ACLUpsertSSHKeyOnNS(ctx context.Context, req *connect.Request[v1.ACLUpsertSSHKeyOnNSRequest]) (*connect.Response[v1.ACLIDResponse], error) {
return c.aCLUpsertSSHKeyOnNS.CallUnary(ctx, req)
}
// ACLUpsertPATOnNS calls simplegit.v1.ManageService.ACLUpsertPATOnNS.
func (c *manageServiceClient) ACLUpsertPATOnNS(ctx context.Context, req *connect.Request[v1.ACLUpsertPATOnNSRequest]) (*connect.Response[v1.ACLIDResponse], error) {
return c.aCLUpsertPATOnNS.CallUnary(ctx, req)
}
// ACLUpsertSSHKeyOnRepo calls simplegit.v1.ManageService.ACLUpsertSSHKeyOnRepo.
func (c *manageServiceClient) ACLUpsertSSHKeyOnRepo(ctx context.Context, req *connect.Request[v1.ACLUpsertSSHKeyOnRepoRequest]) (*connect.Response[v1.ACLIDResponse], error) {
return c.aCLUpsertSSHKeyOnRepo.CallUnary(ctx, req)
}
// ACLUpsertPATOnRepo calls simplegit.v1.ManageService.ACLUpsertPATOnRepo.
func (c *manageServiceClient) ACLUpsertPATOnRepo(ctx context.Context, req *connect.Request[v1.ACLUpsertPATOnRepoRequest]) (*connect.Response[v1.ACLIDResponse], error) {
return c.aCLUpsertPATOnRepo.CallUnary(ctx, req)
}
// ACLDelete calls simplegit.v1.ManageService.ACLDelete.
func (c *manageServiceClient) ACLDelete(ctx context.Context, req *connect.Request[v1.ACLDeleteRequest]) (*connect.Response[emptypb.Empty], error) {
return c.aCLDelete.CallUnary(ctx, req)
}
// Status calls simplegit.v1.ManageService.Status.
func (c *manageServiceClient) Status(ctx context.Context, req *connect.Request[emptypb.Empty]) (*connect.Response[v1.StatusResponse], error) {
return c.status.CallUnary(ctx, req)
}
// ManageServiceHandler is an implementation of the simplegit.v1.ManageService service.
type ManageServiceHandler interface {
// Create a repo (git init --bare). Reuses the namespace's NamespaceID if it
// exists, else mints a new one.
CreateRepo(context.Context, *connect.Request[v1.CreateRepoRequest]) (*connect.Response[emptypb.Empty], error)
// OK if the repo is registered; NotFound otherwise.
ExistRepo(context.Context, *connect.Request[v1.ExistRepoRequest]) (*connect.Response[emptypb.Empty], error)
// Remove a repo (DB row + repo-targeted ACL grants + on-disk dir).
DeleteRepo(context.Context, *connect.Request[v1.DeleteRepoRequest]) (*connect.Response[emptypb.Empty], error)
// Move/rename a repo (transfer and/or rename).
MoveRepo(context.Context, *connect.Request[v1.MoveRepoRequest]) (*connect.Response[emptypb.Empty], error)
// Rename a namespace (all its repos); NamespaceID is stable.
MoveNS(context.Context, *connect.Request[v1.MoveNSRequest]) (*connect.Response[emptypb.Empty], error)
// Grant an SSH key perm on a namespace; registers the key if new. Returns the ACL id.
ACLUpsertSSHKeyOnNS(context.Context, *connect.Request[v1.ACLUpsertSSHKeyOnNSRequest]) (*connect.Response[v1.ACLIDResponse], error)
// Grant a PAT perm on a namespace; creates the PAT if new. Returns the ACL id.
ACLUpsertPATOnNS(context.Context, *connect.Request[v1.ACLUpsertPATOnNSRequest]) (*connect.Response[v1.ACLIDResponse], error)
// Grant an SSH key perm on a repo; registers the key if new. Returns the ACL id.
ACLUpsertSSHKeyOnRepo(context.Context, *connect.Request[v1.ACLUpsertSSHKeyOnRepoRequest]) (*connect.Response[v1.ACLIDResponse], error)
// Grant a PAT perm on a repo; creates the PAT if new. Returns the ACL id.
ACLUpsertPATOnRepo(context.Context, *connect.Request[v1.ACLUpsertPATOnRepoRequest]) (*connect.Response[v1.ACLIDResponse], error)
// Remove a single ACL grant by id.
ACLDelete(context.Context, *connect.Request[v1.ACLDeleteRequest]) (*connect.Response[emptypb.Empty], error)
// Daemon status + config: startup params, listen locations, start time /
// uptime, and the state DB URI (gitctl uses db_uri to connect directly for
// inspection reads -- there is no list RPC on this service). Diagnostics only;
// does not touch the DB.
Status(context.Context, *connect.Request[emptypb.Empty]) (*connect.Response[v1.StatusResponse], error)
}
// NewManageServiceHandler builds an HTTP handler from the service implementation. It returns the
// path on which to mount the handler and the handler itself.
//
// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf
// and JSON codecs. They also support gzip compression.
func NewManageServiceHandler(svc ManageServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) {
manageServiceMethods := v1.File_gitrpc_gitrpc_proto.Services().ByName("ManageService").Methods()
manageServiceCreateRepoHandler := connect.NewUnaryHandler(
ManageServiceCreateRepoProcedure,
svc.CreateRepo,
connect.WithSchema(manageServiceMethods.ByName("CreateRepo")),
connect.WithHandlerOptions(opts...),
)
manageServiceExistRepoHandler := connect.NewUnaryHandler(
ManageServiceExistRepoProcedure,
svc.ExistRepo,
connect.WithSchema(manageServiceMethods.ByName("ExistRepo")),
connect.WithHandlerOptions(opts...),
)
manageServiceDeleteRepoHandler := connect.NewUnaryHandler(
ManageServiceDeleteRepoProcedure,
svc.DeleteRepo,
connect.WithSchema(manageServiceMethods.ByName("DeleteRepo")),
connect.WithHandlerOptions(opts...),
)
manageServiceMoveRepoHandler := connect.NewUnaryHandler(
ManageServiceMoveRepoProcedure,
svc.MoveRepo,
connect.WithSchema(manageServiceMethods.ByName("MoveRepo")),
connect.WithHandlerOptions(opts...),
)
manageServiceMoveNSHandler := connect.NewUnaryHandler(
ManageServiceMoveNSProcedure,
svc.MoveNS,
connect.WithSchema(manageServiceMethods.ByName("MoveNS")),
connect.WithHandlerOptions(opts...),
)
manageServiceACLUpsertSSHKeyOnNSHandler := connect.NewUnaryHandler(
ManageServiceACLUpsertSSHKeyOnNSProcedure,
svc.ACLUpsertSSHKeyOnNS,
connect.WithSchema(manageServiceMethods.ByName("ACLUpsertSSHKeyOnNS")),
connect.WithHandlerOptions(opts...),
)
manageServiceACLUpsertPATOnNSHandler := connect.NewUnaryHandler(
ManageServiceACLUpsertPATOnNSProcedure,
svc.ACLUpsertPATOnNS,
connect.WithSchema(manageServiceMethods.ByName("ACLUpsertPATOnNS")),
connect.WithHandlerOptions(opts...),
)
manageServiceACLUpsertSSHKeyOnRepoHandler := connect.NewUnaryHandler(
ManageServiceACLUpsertSSHKeyOnRepoProcedure,
svc.ACLUpsertSSHKeyOnRepo,
connect.WithSchema(manageServiceMethods.ByName("ACLUpsertSSHKeyOnRepo")),
connect.WithHandlerOptions(opts...),
)
manageServiceACLUpsertPATOnRepoHandler := connect.NewUnaryHandler(
ManageServiceACLUpsertPATOnRepoProcedure,
svc.ACLUpsertPATOnRepo,
connect.WithSchema(manageServiceMethods.ByName("ACLUpsertPATOnRepo")),
connect.WithHandlerOptions(opts...),
)
manageServiceACLDeleteHandler := connect.NewUnaryHandler(
ManageServiceACLDeleteProcedure,
svc.ACLDelete,
connect.WithSchema(manageServiceMethods.ByName("ACLDelete")),
connect.WithHandlerOptions(opts...),
)
manageServiceStatusHandler := connect.NewUnaryHandler(
ManageServiceStatusProcedure,
svc.Status,
connect.WithSchema(manageServiceMethods.ByName("Status")),
connect.WithHandlerOptions(opts...),
)
return "/simplegit.v1.ManageService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
switch r.URL.Path {
case ManageServiceCreateRepoProcedure:
manageServiceCreateRepoHandler.ServeHTTP(w, r)
case ManageServiceExistRepoProcedure:
manageServiceExistRepoHandler.ServeHTTP(w, r)
case ManageServiceDeleteRepoProcedure:
manageServiceDeleteRepoHandler.ServeHTTP(w, r)
case ManageServiceMoveRepoProcedure:
manageServiceMoveRepoHandler.ServeHTTP(w, r)
case ManageServiceMoveNSProcedure:
manageServiceMoveNSHandler.ServeHTTP(w, r)
case ManageServiceACLUpsertSSHKeyOnNSProcedure:
manageServiceACLUpsertSSHKeyOnNSHandler.ServeHTTP(w, r)
case ManageServiceACLUpsertPATOnNSProcedure:
manageServiceACLUpsertPATOnNSHandler.ServeHTTP(w, r)
case ManageServiceACLUpsertSSHKeyOnRepoProcedure:
manageServiceACLUpsertSSHKeyOnRepoHandler.ServeHTTP(w, r)
case ManageServiceACLUpsertPATOnRepoProcedure:
manageServiceACLUpsertPATOnRepoHandler.ServeHTTP(w, r)
case ManageServiceACLDeleteProcedure:
manageServiceACLDeleteHandler.ServeHTTP(w, r)
case ManageServiceStatusProcedure:
manageServiceStatusHandler.ServeHTTP(w, r)
default:
http.NotFound(w, r)
}
})
}
// UnimplementedManageServiceHandler returns CodeUnimplemented from all methods.
type UnimplementedManageServiceHandler struct{}
func (UnimplementedManageServiceHandler) CreateRepo(context.Context, *connect.Request[v1.CreateRepoRequest]) (*connect.Response[emptypb.Empty], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.ManageService.CreateRepo is not implemented"))
}
func (UnimplementedManageServiceHandler) ExistRepo(context.Context, *connect.Request[v1.ExistRepoRequest]) (*connect.Response[emptypb.Empty], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.ManageService.ExistRepo is not implemented"))
}
func (UnimplementedManageServiceHandler) DeleteRepo(context.Context, *connect.Request[v1.DeleteRepoRequest]) (*connect.Response[emptypb.Empty], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.ManageService.DeleteRepo is not implemented"))
}
func (UnimplementedManageServiceHandler) MoveRepo(context.Context, *connect.Request[v1.MoveRepoRequest]) (*connect.Response[emptypb.Empty], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.ManageService.MoveRepo is not implemented"))
}
func (UnimplementedManageServiceHandler) MoveNS(context.Context, *connect.Request[v1.MoveNSRequest]) (*connect.Response[emptypb.Empty], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.ManageService.MoveNS is not implemented"))
}
func (UnimplementedManageServiceHandler) ACLUpsertSSHKeyOnNS(context.Context, *connect.Request[v1.ACLUpsertSSHKeyOnNSRequest]) (*connect.Response[v1.ACLIDResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.ManageService.ACLUpsertSSHKeyOnNS is not implemented"))
}
func (UnimplementedManageServiceHandler) ACLUpsertPATOnNS(context.Context, *connect.Request[v1.ACLUpsertPATOnNSRequest]) (*connect.Response[v1.ACLIDResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.ManageService.ACLUpsertPATOnNS is not implemented"))
}
func (UnimplementedManageServiceHandler) ACLUpsertSSHKeyOnRepo(context.Context, *connect.Request[v1.ACLUpsertSSHKeyOnRepoRequest]) (*connect.Response[v1.ACLIDResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.ManageService.ACLUpsertSSHKeyOnRepo is not implemented"))
}
func (UnimplementedManageServiceHandler) ACLUpsertPATOnRepo(context.Context, *connect.Request[v1.ACLUpsertPATOnRepoRequest]) (*connect.Response[v1.ACLIDResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.ManageService.ACLUpsertPATOnRepo is not implemented"))
}
func (UnimplementedManageServiceHandler) ACLDelete(context.Context, *connect.Request[v1.ACLDeleteRequest]) (*connect.Response[emptypb.Empty], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.ManageService.ACLDelete is not implemented"))
}
func (UnimplementedManageServiceHandler) Status(context.Context, *connect.Request[emptypb.Empty]) (*connect.Response[v1.StatusResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("simplegit.v1.ManageService.Status is not implemented"))
}