github_issues
GitHub — a repository's issues, their comments and their labels.
⚠️ At GitHub, a pull request IS an issue: the API returns the two
mixed together. op='search' therefore drops PRs by default — without which
"how many open tickets?" gives a wrong number, often by a lot.
include_pull_requests=true returns the API's raw response.
This sorting happens after pagination: a page of 30 of which 12 are PRs
returns 18, which is normal.
Conversely, and this is useful: these same operations work on a PR by passing its number — thread comments, labels, assignments and milestones are shared by both.
⚠️ op='update' with labels or assignees REPLACES the list. To
add without overwriting: add_labels / assign.
⚠️ op='assign' silently ignores an account without write access
to the repository: the response comes back as a success without having assigned it. Compare the
returned list with the requested one.
⚠️ Creating an issue or a comment notifies the repository's watchers and anyone mentioned. There is no issue draft at GitHub.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "github_issues"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | the operation, see above. | search |
| _org | No | Org (id) de CET APPEL. `oto_list_orgs()`. | |
| body | No | op='comment'/'update_comment' — the comment text. | |
| full | No | list ops only (search | comments | labels | milestones) — the page as GitHub sends it. Default: the index view (no API links; users, labels, milestones, repositories by name; a body by its `_length`). | |
| page | No | page number. | |
| repo | No | repository name. | |
| sort | No | op='search' — created | updated | comments. | |
| label | No | op='remove_label' — the label to remove. op='create_label' — its name. | |
| owner | No | repository owner. | |
| since | No | op='search'/'comments' — modified since (ISO 8601). | |
| state | No | op='search' — open | closed | all. | |
| _group | No | Équipe (id) de CET APPEL, sous son org parente. | |
| fields | No | op='create'/'update'/'create_label'/'create_milestone' — the body. | |
| labels | No | op='search' (filter) or add_labels / set_labels (write). | |
| number | No | the issue's (or PR's) number. | |
| _run_id | No | OBLIGATOIRE à chaque appel dès `run_start` ou `data_claim_next` : sans lui, l'écriture sur une ligne réservée est refusée. Hérité seulement si le serveur tient un run actif — n'y compte pas. | |
| creator | No | op='search' — filter by author. | |
| _account | No | Compte à OPÉRER parmi : `Julien` (org), `Tulina front` (org). `oto_identity(op='list')`. | |
| _project | No | Projet (id) de CET APPEL — jeton PRIMAIRE. `oto_project(op='list')`. | |
| assignee | No | op='search' — filter by assignee. | |
| per_page | No | rows per page (1-100, default 30). | |
| _instance | No | Instance de connecteur PRÉCISE (un credential exact). `oto_instance(op='list')`. | |
| assignees | No | op='assign'/'unassign' — the targeted accounts. | |
| milestone | No | op='search' — filter by milestone. | |
| comment_id | No | the targeted comment (update_comment, delete_comment). | |
| lock_reason | No | op='lock' — off-topic | too heated | resolved | spam. | |
| include_pull_requests | No | op='search' — include PRs (default false). |