GitHub Projects Sync
Bidirectional GitHub Projects v2 sync.
7 actions. Each is callable by the agent as a tool, over HTTP via /api/invoke, and (usually) from a UI page.
github.status
GET
Report whether the GitHub App is configured (server env) and connected (installed) for this workspace. Returns an install URL when not yet connected.
- AI tool:
github_status - API:
GET /api/invoke/github.status
Input
No parameters.
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {}
}github.resolve_project
POST
Preview a GitHub Project v2 by URL (github.com/orgs|users/
When the agent calls it: Use FIRST when a user wants to import a GitHub project. If connectionOk is false, tell them to install the GitHub App via the returned installUrl (or the Integrations page).
- AI tool:
github_resolve_project - API:
POST /api/invoke/github.resolve_project
Input
| Field | Type | Required | Description |
|---|---|---|---|
url |
string | yes | |
connectionId |
string | — |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"connectionId": {
"type": "string"
}
},
"required": [
"url"
]
}github.import_project
POST · mutating
Import a GitHub Project v2 as a synced local project + table view. Creates project_fields mirroring the GitHub fields (Status single-select → a local Status select + ticket statuses), label definitions with colors, and one ticket (kind=imported) per project item. Only manually-imported projects sync.
When the agent calls it: Call after resolve_project once the user confirms. Routes the user to the new project afterward.
- AI tool:
github_import_project - API:
POST /api/invoke/github.import_project
Input
| Field | Type | Required | Description |
|---|---|---|---|
url |
string | yes | |
projectName |
string | — | |
createView |
boolean | — | |
connectionId |
string | — |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"projectName": {
"type": "string"
},
"createView": {
"type": "boolean"
},
"connectionId": {
"type": "string"
}
},
"required": [
"url"
]
}github.sync_pull
POST · mutating
Re-pull the latest from a bound GitHub project into the local view. Idempotent — dedupes on the external id, updates changed items, tombstones removed ones.
- AI tool:
github_sync_pull - API:
POST /api/invoke/github.sync_pull
Input
| Field | Type | Required | Description |
|---|---|---|---|
bindingId |
string | yes |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"bindingId": {
"type": "string",
"minLength": 1
}
},
"required": [
"bindingId"
]
}github.sync_push
POST · mutating
Force-push local changes (status / labels / custom fields) to GitHub for a bound project. Normally unnecessary — edits push automatically on save. Pass ticketId to push a single item.
- AI tool:
github_sync_push - API:
POST /api/invoke/github.sync_push
Input
| Field | Type | Required | Description |
|---|---|---|---|
bindingId |
string | yes | |
ticketId |
string | — |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"bindingId": {
"type": "string",
"minLength": 1
},
"ticketId": {
"type": "string",
"minLength": 1
}
},
"required": [
"bindingId"
]
}github.list_bindings
GET
List GitHub project bindings for the workspace, optionally filtered to one local project.
- AI tool:
github_list_bindings - API:
GET /api/invoke/github.list_bindings
Input
| Field | Type | Required | Description |
|---|---|---|---|
projectId |
string | — |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1
}
}
}github.unbind
POST · mutating
Stop syncing a GitHub binding. keepLocalData=true (default) leaves the imported tickets/view frozen in place; false soft-deletes the container project too.
- AI tool:
github_unbind - API:
POST /api/invoke/github.unbind
Input
| Field | Type | Required | Description |
|---|---|---|---|
bindingId |
string | yes | |
keepLocalData |
boolean | — |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"bindingId": {
"type": "string",
"minLength": 1
},
"keepLocalData": {
"type": "boolean"
}
},
"required": [
"bindingId"
]
}