board-github

PATCH /v1/board-github/links/{linkId}

Change a connection's sync direction or the board it sits alongside.

All board-github endpoints

Authentication

Send an API key as a bearer token. This endpoint does not state a specific permission in the specification, so give your key the least it needs and check the response rather than assuming.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X PATCH https://api.zinndigital.com/v1/board-github/links/{linkId} \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{  }'

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

`direction` moves a connection between two-way and read-only. A new connection is two-way immediately; read-only exists for a customer who wants a mirror they cannot break, and it is the honest remedy when GitHub keeps refusing our writes — turning writes off is better than a screen that accepts edits which never arrive.

Parameters

NameTypeRequiredWhat it is
linkId (path)stringYesThe GitHub Projects connection.

Request body

NameTypeRequiredWhat it is
directionGitHubSyncDirectionNo`both` is the default (owner ruling, 2026-09-03: a new connection is read-write immediately). `pull` is the honest remedy when a push keeps being refused.
notice_deliveryGitHubNoticeDeliveryNoWhere a connection's overdue / gone-quiet / over-WIP notices are allowed to go. Both values raise the same notices and both render them on the board — the difference is delivery…
board_idstringNo

Response

NameTypeRequiredWhat it is
idstringNo
board_idstringNo
auth_kindGitHubAuthKindNo`app` is the Zinn® GitHub App installation — per-repository scope the customer chooses on GitHub's own screen, revocable by them in one click, belonging to their organisation ra…
installation_idstringNoPublic — it appears in the customer's own install URL — and showing it is what lets them confirm on GitHub that they are looking at the right installation.
has_stored_tokenbooleanNoWhether a token is held in Vault for this connection. The token itself is never returned.
project_node_idstringNo
project_numberintegerNo
owner_loginstringNo
owner_typestringNo
titlestringNo
short_descriptionstringNo
closedbooleanNo
publicbooleanNo
directionGitHubSyncDirectionNo`both` is the default (owner ruling, 2026-09-03: a new connection is read-write immediately). `pull` is the honest remedy when a push keeps being refused.
notice_deliveryGitHubNoticeDeliveryNoWhere a connection's overdue / gone-quiet / over-WIP notices are allowed to go. Both values raise the same notices and both render them on the board — the difference is delivery…
viewsobject[]NoThe project's saved views on GitHub, replaced whole on every read so a view deleted there disappears here rather than lingering as a link GitHub answers with a 404. Rendered as…
urlstringNo
webhook_stateGitHubWebhookStateNoWhether GitHub pushes changes at us, and if not, whose move it is. **Three outcomes and not a boolean.** `automatic` — we created the organisation webhook. `manual` — GitHub wou…
last_synced_atstringNoWhen a sync last SUCCEEDED. What the staleness alarm fires off.
last_attempted_atstringNoWhen a sync was last ATTEMPTED, stamped for every connection the sweep reaches before the result is read. Two columns rather than one: a cursor only a successful pass advanced w…
last_errorstringNo
created_atstringNo
fieldsGitHubProjectField[]NoThe project's fields, with their single-select options and any work-in-progress limits set on them. Returned with the connection rather than fetched separately, because a board…

Errors this endpoint can return

401 · 403 · 404 · 422