Version
POST

Sync a Git connection from the host

/v1/git-connections/{connection}/sync in the Git Connections API.

curl -X POST https://api.example.test/v1/git-connections/$CONNECTION_ID/sync \  -H "Authorization: Bearer $TOKEN" \  -H "Idempotency-Key: $(uuidgen)"

Reads the installation from the host again and refreshes the account, the repository selection, the permissions and the events; do it after granting the App new permissions or repositories at the host. Answers 200 with the connection.

POST
/v1/git-connections/{connection}/sync

Requires ability

The token must hold this ability, or the call is refused with 403.

Idempotent

Send the header on every call; the same key replays the original response for 24 hours.

Authorization

bearerToken
AuthorizationBearer <token>

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

connection*string

The connection, bound by the middleware.

Formatuuid

Header Parameters

Idempotency-Key*string

A key unique to this operation, such as a fresh UUID. The same key replays the original 2xx response for 24 hours (with Idempotent-Replay: true), so a retry after a timeout never repeats the write; the same key with a different body is refused with 409.

Formatuuid

Responses

200OK

The connection, refreshed.

400Bad request

Every write needs an Idempotency-Key header. Send a fresh UUID per distinct operation.

401Unauthorized

The request carries no bearer token, or one that is revoked, malformed, or minted for another environment (a zg_test_ token on production).

403Forbidden

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 integration:manage.

404Not found

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.

409Conflict

The key was already used in the last 24 hours with a different request body.

422Validation failed

When the host refuses or does not answer. INTEGRATION_NOT_CONNECTED: when the workspace carries no App credentials.

425Too early

The first request with this key is still running; retry in a few seconds and the original response is replayed.

429Too many requests

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