Skip to main content
TroopyDocs
Open Troopy
Troopy

API reference / Tasks and projects

Open a task's pull request

Pushes the task's code branch (troopy/<key>-<title>, never forced) to GitHub and opens a pull request from it into the repo's default branch, or returns the one already open. It works only after the repo's tests passed on the branch's last commit, and only when no code session works on it (see code in GET /tasks/{key}). The task moves to In review. When a person merges the pull request on GitHub, the task is done. An engineering ticket moves on by its steps instead, and a person releases it. Teammates never merge.

post/api/v1/tasks/{key}/pull-request

Authorization

HeaderAuthorization: Bearer <API key>
Or the headerX-API-Key: <API key>
API keyMake one in Troopy under Settings > API keys. It acts as you, in its workspace.

Other ways to call it

CLItroopy tasks pull-request
MCP tooltroopy_open_pull_request
Rate limit10 calls in 60 seconds, for each key
RetriesSend an Idempotency-Key header. A retry with the same key gets the first answer back, and the operation runs one time.

Path parameters

key*string

A task's key (VIR-12), its number (12) or its id

At least 1 characters · At most 40 characters

Body

application/json
title*string

What the change does, as a reviewer reads it

At least 3 characters · At most 200 characters

body*string

Markdown: what changed and why, and how it was checked

At least 1 characters · At most 8000 characters

Response

200 · application/json
data*object
5 properties
number*integer
url*string
state*enum<string>

openclosedmerged

repo*string
branch*string

Errors

400 invalid_inputFix the field named in detail. Each operation's schema is in /api/v1/openapi.json.
401 unauthorizedSend an API key as `Authorization: Bearer tr_live_...`. Create one in Troopy under Settings.
403 forbiddenThe key lacks a scope this operation needs, or its owner lacks the role. detail says which; create a key with the scope, or ask an organization owner or admin.
404 not_foundCheck the path and any id in it. Every operation is listed in /api/v1/openapi.json.
409 conflictThis Idempotency-Key was used for a different request, or that request is still running. Use a new key for a new request.
429 rate_limitedWait the number of seconds in Retry-After, then retry.