feat: definition of done per project

A project can ask that tickets reach a DONE status only with their
checklist ticked (settings.checklistBeforeDone, off by default; absent
when saving means unchanged). Members get a 422 telling how many steps are
left; owners and admins may still close it. Settings has the switch and
the ticket's checklist says when the project asks for it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-15 14:39:24 +02:00
parent 5b0396bc10
commit e598f76e1c
25 changed files with 285 additions and 4 deletions

View File

@@ -14,11 +14,14 @@ export class ChangeIssueStatusCommandHandler
command.issueId,
command.actorId,
);
const role = project.roleOf(command.actorId);
issue.changeStatus(
command.actorId,
command.status,
command.reason,
project.workflow,
// The definition of done holds back members, not who runs the project.
role === 'OWNER' || role === 'ADMIN',
);
await issue.commitAndWait();
return ack(issue);