feat: move unfinished tickets between releases
- Bulk editing gets «Release…» (open releases or none), and the list view a release filter, also reachable from each release («Ver en la lista», ?release=). - Archiving a release asks where its unfinished tickets go, as closing a sprint does: ReleaseArchivedEvent carries `moveTo` (an open release of the same project, or none) and the saga moves them there; finished ones stay. In GraphQL, REST and the MCP's archive_release. - Chapter 10 lists the next features and the ideas to weigh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -6572,6 +6572,7 @@
|
||||
},
|
||||
"/api/releases/{releaseId}/archive": {
|
||||
"post": {
|
||||
"description": "Its unfinished tickets move to `moveTo` (an open release of the same project) or leave it.",
|
||||
"operationId": "ReleasesController_archive",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -6583,6 +6584,16 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"required": true,
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/ArchiveReleaseDto"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "",
|
||||
@@ -6663,7 +6674,7 @@
|
||||
"pireon": []
|
||||
}
|
||||
],
|
||||
"summary": "Archive a planned release (its tickets leave it)",
|
||||
"summary": "Archive a planned release",
|
||||
"tags": [
|
||||
"Releases"
|
||||
]
|
||||
@@ -12342,6 +12353,17 @@
|
||||
"markdown"
|
||||
]
|
||||
},
|
||||
"ArchiveReleaseDto": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"moveTo": {
|
||||
"type": "string",
|
||||
"nullable": true,
|
||||
"format": "uuid",
|
||||
"description": "Open release of the same project that takes its unfinished tickets; null or absent: they leave it"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ShowcaseProjectDto": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
||||
@@ -648,7 +648,13 @@ type Mutation {
|
||||
|
||||
"""Add a Pireon user to the project"""
|
||||
addProjectMember(input: ProjectMemberInput!): CommandResult!
|
||||
archiveRelease(releaseId: ID!): CommandResult!
|
||||
archiveRelease(
|
||||
"""
|
||||
Open release of the same project that takes its unfinished tickets; none: they leave it
|
||||
"""
|
||||
moveTo: ID
|
||||
releaseId: ID!
|
||||
): CommandResult!
|
||||
|
||||
"""Assign (or unassign with null) a project member"""
|
||||
assignIssue(assigneeId: ID, issueId: ID!): CommandResult!
|
||||
|
||||
Reference in New Issue
Block a user