Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Protocol reference

Grovedock speaks gRPC (HTTP/2, and gRPC-Web for browsers). The pando.v1 package is stable: it changes only by adding. Generate a client for any language from the files below; the SDKs wrap the read calls for Python, TypeScript and Go.

Calls to a server that hosts many repositories name one with the x-pando-repo: OWNER/NAME header. Every call takes a bearer token in authorization when the server requires one.

pando.proto

Source

Objects

Tier-agnostic object service. Served identically by server, cache and daemon.

CallRequestResponseWhat it does
GetIdListstream ObjectPayload
Putstream ObjectPayloadPutObjectsResponse
MissingIdListIdListReturns the subset of ids the tier cannot serve.

Changesets

CallRequestResponseWhat it does
CreateCreateChangesetRequestChangesetInfo
GetResolveRequestChangesetInfo

Refs

CallRequestResponseWhat it does
GetRefNameRefValue
CompareAndSwapCasRequestCasResponse
ListEmptyRefList

Land

Server-side rebase + lock-free compare-and-swap of a ref.

CallRequestResponseWhat it does
LandLandRequestLandResponse

History

CallRequestResponseWhat it does
LogLogRequeststream ChangesetInfo
BlameBlameRequestBlameResponse

Diff

CallRequestResponseWhat it does
DiffDiffRequestDiffResponse

MergeBase

CallRequestResponseWhat it does
MergeBaseMergeBaseRequestMergeBaseResponse

Browse

API-first file access: CI and tools read source without any checkout.

CallRequestResponseWhat it does
ListDirBrowseRequestListDirResponse
ReadFileBrowseRequestReadFileResponse
FindFindRequestFindResponse
CheckoutCheckoutRequeststream CheckoutPiecePath-scoped checkout: only files the caller may read. Used by principals with restricted read access, who may not read objects by id.

Access

CallRequestResponseWhat it does
WhoAmIEmptyWhoAmIResponse

Locks

CallRequestResponseWhat it does
LockLockRequestLockInfo
UnlockUnlockRequestEmpty
ListListLocksRequestLockList

pando_platform.proto

Source

Platform

CallRequestResponseWhat it does
ViewerEmptyViewerResponse
GetAccountOrgNameAccount
ListOrganizationsEmptyListOrganizationsResponse
GetOrganizationOrgNameOrganization
CreateOrganizationCreateOrganizationRequestOrganization
ListMembersOrgNameListMembersResponse
SetMemberSetMemberRequestMember
ListTeamsOrgNameListTeamsResponse
SetTeamTeamTeamCreates the team, or replaces its name, description and members.
DeleteTeamTeamRefEmpty
ListRepositoriesListRepositoriesRequestListRepositoriesResponse
GetRepositoryRepositoryRefRepository
CreateRepositoryCreateRepositoryRequestRepository
UpdateRepositoryUpdateRepositoryRequestRepository
ListGrantsRepositoryRefListGrantsResponse
SetGrantSetGrantRequestGrant
ListTokensEmptyListTokensResponse
CreateTokenCreateTokenRequestCreateTokenResponse
RevokeTokenRevokeTokenRequestEmpty
ListWebhooksRepositoryRefListWebhooksResponse
CreateWebhookCreateWebhookRequestCreateWebhookResponse
DeleteWebhookWebhookRefEmpty
ListWebhookDeliveriesWebhookRefListWebhookDeliveriesResponse
PingWebhookWebhookRefWebhookDeliverySends a ping event now.
ListSignupAllowEmptyListSignupAllowResponseWho may create an account by signing in when --signup waitlist: email addresses and @domain entries. Site administrators only.
SetSignupAllowSetSignupAllowRequestEmpty
LinkIdentityLinkIdentityRequestEmptyLets an identity sign in as an existing account, e.g. the first administrator’s email address. Site administrators only.
CreateInvitationCreateInvitationRequestCreateInvitationResponseInvitations to an organisation: a single-use link, valid 7 days, emailed when the server sends mail. Whoever opens it and signs in joins with the role. Organisation administrators.
ListInvitationsOrgNameListInvitationsResponseInvitations not yet accepted, including expired ones.
RevokeInvitationInvitationRefEmpty
GetUsageGetUsageRequestUsagePlans and usage (ADR-035). An organisation’s active agents, people, storage and limits: its administrators and site administrators.
SetLimitsSetLimitsRequestOrgLimitsReplaces an organisation’s limits (not its suspension). Site administrators only.
SetSuspendedSetSuspendedRequestOrgLimitsA suspended organisation can read but not write. Site administrators only.
GetCapabilitiesEmptyCapabilitiesWhat this server offers: anyone may ask.
GetLicenseEmptyLicenseThe support licence this server was started with. Site administrators only.

Issues

CallRequestResponseWhat it does
ListIssuesListIssuesRequestListIssuesResponse
GetIssueIssueRefIssue
CreateIssueCreateIssueRequestIssue
UpdateIssueUpdateIssueRequestIssue
ListIssueCommentsIssueRefListCommentsResponse
AddIssueCommentAddIssueCommentRequestComment

Reviews

CallRequestResponseWhat it does
ListChangeRequestsListChangeRequestsRequestListChangeRequestsResponse
GetChangeRequestChangeRequestRefChangeRequest
CreateChangeRequestCreateChangeRequestRequestChangeRequest
UpdateChangeRequestUpdateChangeRequestRequestChangeRequest
ListCommentsChangeRequestRefListCommentsResponse
AddCommentAddCommentRequestComment
ResolveThreadResolveThreadRequestComment
SubmitReviewSubmitReviewRequestChangeRequest
LandChangeRequestRefLandChangeRequestResponse
RebaseChangeRequestRefChangeRequestRe-applies the change on the target’s tip. Edits that do not overlap what landed since are carried over; otherwise it fails with FAILED_PRECONDITION naming the files that conflict. Approvals made on the old version stop counting when the protection says so.
ListProtectionsRepositoryRefListProtectionsResponse
SetProtectionProtectionProtection
DeleteProtectionProtectionRefEmpty
ReportCheckReportCheckRequestChangeRequest
InboxInboxRequestInboxResponse
ListEventsListEventsRequestListEventsResponse