Add Co-authored-by trailers to Merge's squash commit

This commit is contained in:
Ian Gulliver
2026-10-15 07:15:51 -07:00
parent c778741a4a
commit 60a1d221f4
15 changed files with 478 additions and 123 deletions
+32 -3
View File
@@ -173,6 +173,25 @@ paths:
"404": { $ref: "#/components/responses/Error" }
"409": { $ref: "#/components/responses/Error" }
/api/tasks/{taskId}/co-authors:
parameters:
- { name: taskId, in: path, required: true, schema: { type: string } }
get:
operationId: getCoAuthors
description: >
The humans other than the caller with a message in the task's transcript (sent its agent a message, or had
an inbox answer delivered under their name), in order of their first message. A merge by the caller gives each one with a git identity a
Co-authored-by trailer.
responses:
"200":
description: The co-authors.
content:
application/json:
schema:
type: array
items: { $ref: "#/components/schemas/Participant" }
"404": { $ref: "#/components/responses/Error" }
/api/tasks/{taskId}/merge:
parameters:
- { name: taskId, in: path, required: true, schema: { type: string } }
@@ -180,9 +199,10 @@ paths:
operationId: mergeTask
description: >
Starts the same agent turn as merge-in. When that turn ends normally, byre squashes the task's worktree
into one commit titled with the task's merge_title on the project's default branch, fast-forwards the project's
checkout to it, then removes the worktree and branch and marks the task merged. Nothing is pushed. Refused while
a turn is running or queued.
into one commit titled with the task's merge_title on the project's default branch, authored by the caller with
a Co-authored-by trailer for each of the task's co-authors, pushes it to origin, fast-forwards the project's
checkout to it, then removes the worktree and branch and marks the task merged. Refused while a turn is running
or queued.
responses:
"202":
description: The merge turn was started or queued.
@@ -634,6 +654,15 @@ components:
deletions: { type: integer }
uncommitted: { type: integer, description: Paths with uncommitted changes in the worktree. }
Participant:
type: object
required: [login, display_name, git_name, git_email]
properties:
login: { type: string }
display_name: { type: string }
git_name: { type: string, description: Empty when the user hasn't set a git identity; they then get no trailer. }
git_email: { type: string }
TaskCreate:
type: object
required: [title]