Appearance
Branch Links API
Branch links connect GitHub branches to issues, providing traceability between code changes and work items. Requires an active GitHub integration.
Permissions
| Action | Required Permission | Scope |
|---|---|---|
| List | Project access | Branch links on issues within accessible projects |
| Link / Create | IssueBranchLinks: Create | On issues within accessible projects |
| Update Status | IssueBranchLinks: Update (Own/All) | Own: only your links. All: any link |
| Delete | IssueBranchLinks: Delete (Own/All) | Own: only your links. All: any link |
Admins and project owners bypass all permission checks for project-scoped resources.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/projects/{projectId}/issues/{issueId}/branch-links | List branch links |
POST | /api/projects/{projectId}/issues/{issueId}/branch-links | Link an existing branch |
POST | /api/projects/{projectId}/issues/{issueId}/branch-links/create-branch | Create a new branch on GitHub and link it |
PUT | /api/projects/{projectId}/issues/{issueId}/branch-links/{branchLinkId}/status | Update link status |
DELETE | /api/projects/{projectId}/issues/{issueId}/branch-links/{branchLinkId} | Delete a branch link |
List Branch Links
GET /api/projects/{projectId}/issues/{issueId}/branch-links
bash
curl https://{tenant}.kendo.dev/api/projects/1/issues/42/branch-links \
-H "Authorization: Bearer your-token"json
[
{
"id": 5,
"issue_id": 42,
"branch_name": "KD-0042-add-pagination",
"branch_url": "https://github.com/script-development/kendo/tree/KD-0042-add-pagination",
"status": 1,
"created_by": 4,
"created_at": "2026-03-13T10:30:00.000000Z",
"creator": {
"id": 4,
"first_name": "Alice",
"last_name": "Johnson"
},
"project_github_repo": {
"id": 1,
"project_id": 1,
"repo_full_name": "script-development/kendo",
"repo_url": "https://github.com/script-development/kendo",
"default_branch": "development",
"is_primary": true,
"owner": "script-development",
"repo_name": "kendo",
"branch_links_count": 12
}
}
]Link Existing Branch
POST /api/projects/{projectId}/issues/{issueId}/branch-links
Links an existing branch from a connected GitHub repository to the issue.
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
project_github_repo_id | integer | Yes | ID of the linked GitHub repository (from project settings) |
branch_name | string | Yes | Branch name, max 255 characters |
bash
curl -X POST https://{tenant}.kendo.dev/api/projects/1/issues/42/branch-links \
-H "Authorization: Bearer your-token" \
-H "Content-Type: application/json" \
-d '{
"project_github_repo_id": 1,
"branch_name": "KD-0042-add-pagination"
}'json
{
"id": 5,
"issue_id": 42,
"branch_name": "KD-0042-add-pagination",
"branch_url": "https://github.com/script-development/kendo/tree/KD-0042-add-pagination",
"status": 0,
"created_by": 4,
"created_at": "2026-03-13T10:30:00.000000Z",
"creator": {
"id": 4,
"first_name": "Alice",
"last_name": "Johnson"
},
"project_github_repo": {
"id": 1,
"project_id": 1,
"repo_full_name": "script-development/kendo",
"repo_url": "https://github.com/script-development/kendo",
"default_branch": "development",
"is_primary": true,
"owner": "script-development",
"repo_name": "kendo",
"branch_links_count": 12
}
}Create and Link Branch
POST /api/projects/{projectId}/issues/{issueId}/branch-links/create-branch
Creates a new branch on GitHub (from the repository's default branch) and links it to the issue.
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
project_github_repo_id | integer | Yes | ID of the linked GitHub repository |
branch_name | string | Yes | Branch name to create, max 255 characters |
bash
curl -X POST https://{tenant}.kendo.dev/api/projects/1/issues/42/branch-links/create-branch \
-H "Authorization: Bearer your-token" \
-H "Content-Type: application/json" \
-d '{
"project_github_repo_id": 1,
"branch_name": "KD-0042-add-pagination"
}'json
{
"id": 6,
"issue_id": 42,
"branch_name": "KD-0042-add-pagination",
"branch_url": "https://github.com/script-development/kendo/tree/KD-0042-add-pagination",
"status": 0,
"created_by": 4,
"created_at": "2026-03-13T10:35:00.000000Z",
"creator": {
"id": 4,
"first_name": "Alice",
"last_name": "Johnson"
},
"project_github_repo": {
"id": 1,
"project_id": 1,
"repo_full_name": "script-development/kendo",
"repo_url": "https://github.com/script-development/kendo",
"default_branch": "development",
"is_primary": true,
"owner": "script-development",
"repo_name": "kendo",
"branch_links_count": 13
}
}Update Status
PUT /api/projects/{projectId}/issues/{issueId}/branch-links/{branchLinkId}/status
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
status | integer | Yes | New status value (see Status values) |
bash
curl -X PUT https://{tenant}.kendo.dev/api/projects/1/issues/42/branch-links/5/status \
-H "Authorization: Bearer your-token" \
-H "Content-Type: application/json" \
-d '{
"status": 2
}'json
{
"id": 5,
"issue_id": 42,
"branch_name": "KD-0042-add-pagination",
"branch_url": "https://github.com/script-development/kendo/tree/KD-0042-add-pagination",
"status": 2,
"created_by": 4,
"created_at": "2026-03-13T10:30:00.000000Z",
"creator": {
"id": 4,
"first_name": "Alice",
"last_name": "Johnson"
},
"project_github_repo": {
"id": 1,
"project_id": 1,
"repo_full_name": "script-development/kendo",
"repo_url": "https://github.com/script-development/kendo",
"default_branch": "development",
"is_primary": true,
"owner": "script-development",
"repo_name": "kendo",
"branch_links_count": 12
}
}Delete Branch Link
DELETE /api/projects/{projectId}/issues/{issueId}/branch-links/{branchLinkId}
Returns 204 No Content on success.
bash
curl -X DELETE https://{tenant}.kendo.dev/api/projects/1/issues/42/branch-links/5 \
-H "Authorization: Bearer your-token"Status
| Value | Status | Description |
|---|---|---|
0 | Linked | Branch is linked to the issue (default) |
1 | Open | Pull request is open |
2 | Merged | Pull request has been merged |
3 | Closed | Pull request was closed without merging |
See Also
- Issues API — Issues that branch links belong to
- GitHub Integration — Setting up the GitHub connection