board-github
POST /v1/board-github/links
Connect a GitHub Project to this organisation.
Xác thực
Gửi khóa API dưới dạng mã thông báo bearer. Điểm cuối này không nêu rõ quyền cụ thể trong thông số kỹ thuật, vì vậy hãy cấp cho khóa của bạn quyền tối thiểu cần thiết và kiểm tra phản hồi thay vì phỏng đoán.
Nơi điền id tổ chức của bạn
Endpoint này nhận org_id làm một trường trong phần thân JSON.
Mã tổ chức của bạn nằm ở màn hình khóa API trong bảng điều khiển, ngay bên cạnh khóa đó. Đây là cùng một mã trong mọi lệnh gọi mà bạn thực hiện.
Dùng thử
Thay thế bất kỳ nội dung nào trong ngoعل (angle brackets) bằng giá trị của riêng bạn và trình giữ chỗ key bằng một key từ trang tổng quan của bạn.
curl -X POST https://api.zinndigital.com/v1/board-github/links \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "project_node_id": <string>, "project_number": <integer>, "owner_login": <string> }'Đã đăng nhập? Bảng điều khiển API trong trang quản lý của bạn sẽ tự điền ID tổ chức thực tế và khóa của riêng bạn, sau đó chạy yêu cầu đối với API trực tiếp để bạn có thể xem phản hồi thực tế. Mở điểm cuối này trong bảng điều khiển API
Chi tiết
Two-way from the moment it is connected (owner ruling, 2026-09-03). The first sync runs inside this request, so the 201 already carries the project's fields — a connect that returned an empty board and left the customer waiting for the sweep would read as a broken connection. `auth_kind: app` stores only the **installation id**, which is public and appears in the customer's own install URL; nothing long-lived is at rest and an hour-long token is minted per use. `auth_kind: pat` writes the token straight to Vault and never echoes it.
Nội dung yêu cầu
| Tên | Loại | Bắt buộc | Nội dung này là gì |
|---|---|---|---|
project_node_id | string | Có | — |
project_number | integer | Có | — |
owner_login | string | Có | — |
owner_type | string<organization, user> | Không | — |
auth_kind | GitHubAuthKind | Không | `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_id | string | Không | — |
token | string | Không | — |
board_id | string | Không | Optional. A project may be connected purely for the roll-up and never attached to client work. |
title | string | Không | — |
org_id | string | Không | — |
Phản hồi
| Tên | Loại | Bắt buộc | Nội dung này là gì |
|---|---|---|---|
id | string | Không | — |
board_id | string | Không | — |
auth_kind | GitHubAuthKind | Không | `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_id | string | Không | Public — 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_token | boolean | Không | Whether a token is held in Vault for this connection. The token itself is never returned. |
project_node_id | string | Không | — |
project_number | integer | Không | — |
owner_login | string | Không | — |
owner_type | string | Không | — |
title | string | Không | — |
short_description | string | Không | — |
closed | boolean | Không | — |
public | boolean | Không | — |
direction | GitHubSyncDirection | Không | `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_delivery | GitHubNoticeDelivery | Không | Where 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… |
views | object[] | Không | The 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… |
url | string | Không | — |
webhook_state | GitHubWebhookState | Không | Whether 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_at | string | Không | When a sync last SUCCEEDED. What the staleness alarm fires off. |
last_attempted_at | string | Không | When 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_error | string | Không | — |
created_at | string | Không | — |
fields | GitHubProjectField[] | Không | The 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… |
Các lỗi điểm cuối này có thể trả về
401 · 403 · 422