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
+50 -1
View File
@@ -160,6 +160,25 @@ export interface paths {
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/co-authors": {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
/** @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. */
get: operations["getCoAuthors"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tasks/{taskId}/merge": {
parameters: {
query?: never;
@@ -171,7 +190,7 @@ export interface paths {
};
get?: never;
put?: never;
/** @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. */
/** @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, 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. */
post: operations["mergeTask"];
delete?: never;
options?: never;
@@ -595,6 +614,13 @@ export interface components {
/** @description Paths with uncommitted changes in the worktree. */
uncommitted: number;
};
Participant: {
login: string;
display_name: string;
/** @description Empty when the user hasn't set a git identity; they then get no trailer. */
git_name: string;
git_email: string;
};
TaskCreate: {
title: string;
};
@@ -1163,6 +1189,29 @@ export interface operations {
409: components["responses"]["Error"];
};
};
getCoAuthors: {
parameters: {
query?: never;
header?: never;
path: {
taskId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description The co-authors. */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Participant"][];
};
};
404: components["responses"]["Error"];
};
};
mergeTask: {
parameters: {
query?: never;