List the repositories an installation offers a project
/v1/projects/{project}/host-repositories in the Git Connections API.
curl "https://api.example.test/v1/projects/$PROJECT_ID/host-repositories?connection_id=$CONNECTION_ID" \ -H "Authorization: Bearer $TOKEN"Every repository the installation can reach that the project has not registered yet, as the host lists them, with the id to pick each by. Leave connection_id out to read the team's one live GitHub connection.
Requires ability
The token must hold this ability, or the call is refused with 403.
Authorization
bearerToken A personal access token minted in the app under Account Settings, then API Tokens, sent as Authorization: Bearer zg_live_…. The token carries the abilities each endpoint lists under Requires ability and is frozen to one team, and optionally to one project, at mint time.
In: header
Path Parameters
The project, bound by the middleware.
uuidQuery Parameters
The id of one of the team's live connections; the team's one live GitHub connection when left out.
uuidResponses
200OKapplication/json
Array of HostRepositoryResource
401UnauthorizedAUTHENTICATION_REQUIREDapplication/json
The request carries no bearer token, or one that is revoked, malformed, or minted for another environment (a zg_test_ token on production).
403ForbiddenTOKEN_MISSING_ABILITYapplication/json
The token is valid but does not carry the ability this endpoint requires; error.context.required_ability names the one to grant. An endpoint that also checks who registered a row answers FORBIDDEN with the same status, and says so in its own description.
On this endpoint: FORBIDDEN: when the role does not carry repository:create, or the token is a client guest's.
404Not foundRESOURCE_NOT_FOUNDapplication/json
An id in the path names nothing the token can see. TENANT_MISMATCH: the project sits outside the token's scope:project: allow-list, or the token carries no team scope. Both answer 404 rather than 403 so that existence outside the token's scope cannot be inferred.
On this endpoint: RESOURCE_NOT_FOUND: when the connection is another team's or missing.
422Validation failedVALIDATION_FAILEDapplication/json
The payload broke a rule, and error.fields maps each offending key to its messages. A refusal from the domain, such as a role code already taken or a team the caller does not own, uses the same code with error.message saying why and no fields.
On this endpoint: INTEGRATION_NOT_CONNECTED: when the team has no live connection and none was named, or the connection named was forgotten or suspended. VALIDATION_FAILED: when the host refuses or does not answer.
429Too many requestsRATE_LIMITEDapplication/json
The token has spent its 300 requests a minute or 10,000 an hour; Retry-After says when the next one is accepted.
How is this guide?
Last updated on