feat: release notes
Each release can carry notes in Markdown, written before or after it ships. A draft is generated from its finished tickets grouped by type, to edit and copy from the releases page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -23,6 +23,8 @@ import {
|
||||
IssueCommentsDocument,
|
||||
PublishReleaseDocument,
|
||||
ReleaseBurnupDocument,
|
||||
ReleaseNotesDraftDocument,
|
||||
WriteReleaseNotesDocument,
|
||||
ReleasesDocument,
|
||||
UpcomingReleasesDocument,
|
||||
SearchUsersDocument,
|
||||
@@ -98,6 +100,21 @@ export class GraphqlReleasesGateway extends ReleasesGateway {
|
||||
.query(ReleaseBurnupDocument, { id: releaseId })
|
||||
.pipe(map((d) => d.release.burnup));
|
||||
}
|
||||
|
||||
notesDraft(releaseId: string): Observable<string> {
|
||||
return this.gql
|
||||
.query(ReleaseNotesDraftDocument, { id: releaseId })
|
||||
.pipe(map((d) => d.release.notesDraft));
|
||||
}
|
||||
|
||||
writeNotes(
|
||||
releaseId: string,
|
||||
notes: string | null,
|
||||
): Observable<CommandResult> {
|
||||
return this.gql
|
||||
.mutate(WriteReleaseNotesDocument, { releaseId, notes })
|
||||
.pipe(map((d) => toCommandResult(d.writeReleaseNotes)));
|
||||
}
|
||||
}
|
||||
|
||||
@Injectable()
|
||||
|
||||
Reference in New Issue
Block a user