Skip to content

Decisions and why

The decision records on an issue (with those on its pull requests) or on a pull request, oldest first: each with its kind (proposal, claim, integration_failure, integration_passed, fix, approval, merge or note), its confidence (claimed: someone said so; tested: a check or a combination of pull requests proved it; approved: a person approved it), who recorded it (absent for g1t), its summary and its evidence.

GET/repos/{owner}/{name}/issues/{number}/decisions

Issues and pull requests share numbers, so number names either.

GET /repos/{owner}/{name}/issues/{number}/decisions lists an issue’s, with those on its pull requests.

Name Type Required Description
owner string Yes The workspace that owns the repository.
name string Yes The repository’s name.
number integer Yes The number shown after the #. Issues and pull requests share one sequence.
curl https://api.g1t.sh/repos/flagon-io/hello/issues/12/decisions \
-H "Authorization: Bearer $G1T_TOKEN"

A successful request answers 200 with:

[
{
"id": "dec_01kpz8m2q4r6s8t0v2w4x6y8za",
"issue": 9,
"pull": 14,
"session_id": null,
"actor": null,
"kind": "integration_failure",
"confidence": "tested",
"summary": "#14 failed in the merge queue together with #12: `CI / merge_group` failed when they were combined.",
"evidence": {
"commit": "4be1c0d9a2f3e4b5c6d7e8f90a1b2c3d4e5f6a7b",
"check": {
"name": "CI / merge_group",
"conclusion": "failure",
"url": "https://g1t.sh/acme/web/actions/runs/run_01kpz8k0"
},
"combination": [
11,
12,
14
],
"other_pulls": [
11,
12
],
"suspects": [
12
],
"bisected": true,
"landed": []
},
"created_at": "2026-10-12T15:04:11.204Z"
},
{
"id": "dec_01kpz9a1b3c5d7e9f1g3h5j7kb",
"issue": 9,
"pull": 14,
"session_id": "ses_01kpz7x9y1z3a5b7c9d1e3f5gh",
"actor": "ana",
"kind": "fix",
"confidence": "claimed",
"summary": "Renamed the config key #12 also introduced, so both read retry_limit.",
"evidence": {
"commit": "7d3e9a1c5b2f4e6a8c0d2e4f6a8b0c2d4e6f8a0b"
},
"created_at": "2026-10-12T15:31:40.019Z"
}
]

A failed request answers with one of these statuses and a body like {"error": {"code": "not_found", "message": "Repository not found."}}. See errors.

Status Code When
401 unauthenticated A token is required, or the one sent is not valid.
403 forbidden The token is valid but not allowed to do this, such as a member-only change, or a token without the scope it needs.
404 not_found It does not exist, or you cannot see it.
422 invalid The input is not valid. message says which field and why.