Skip to main content

github.get_issue

github.get_issue reads a single GitHub issue by repo + issue_number, returning the subset of the issue REST shape that downstream coding-agent packs chain into: title and body feed swe.solve's task field, while state/labels let conditional flows skip closed/wontfix issues. The response is read-through cached for 5 minutes, so a pipeline that retries or batches by number won't re-hit the REST API. For listing/filtering use github.list_issues instead.

Inputs

FieldTypeRequiredDefaultNotes
repostringyesowner/name.
issue_numbernumberyesThe issue number.
credentialstringnogithub-tokenVault entry name; required for private repos.

Outputs

FieldTypeNotes
numbernumberIssue number.
titlestringIssue title.
bodystringIssue body (markdown).
statestringopen / closed.
labelsarrayLabel objects.
html_urlstringWeb URL.
userobjectAuthor.

Vault credentials needed

  • github-token — type api_key, scoped to api.github.com. Optional for public repos; required for private repos.

Use it from your agent (OpenClaw chat-UI worked example)

OpenClaw chat capture pending.

Developer reference (curl)

curl -fsS -X POST http://localhost:3000/api/v1/packs/github.get_issue \
-H "Authorization: Bearer $JWT" \
-H 'Content-Type: application/json' \
-d '{ "repo": "tosin2013/helmdeck", "issue_number": 233 }'

Error codes

CodeTriggers
invalid_inputrepo or issue_number missing.
handler_failedGitHub REST error (404, auth).

Session chaining

  • No session. Stateless.

Async behavior

Synchronous only.

See also