diff --git a/src/lib/features/release-plans/release-plan-milestone.ts b/src/lib/features/release-plans/release-plan-milestone.ts index 9d83ece8bb..ad1a47e66a 100644 --- a/src/lib/features/release-plans/release-plan-milestone.ts +++ b/src/lib/features/release-plans/release-plan-milestone.ts @@ -6,5 +6,6 @@ export interface ReleasePlanMilestone { sortOrder: number; releasePlanDefinitionId: string; startedAt?: Date; + transitionCondition?: object; strategies?: ReleasePlanMilestoneStrategy[]; } diff --git a/src/lib/features/release-plans/release-plan-read-model.ts b/src/lib/features/release-plans/release-plan-read-model.ts index 322926efe6..79e7e463c1 100644 --- a/src/lib/features/release-plans/release-plan-read-model.ts +++ b/src/lib/features/release-plans/release-plan-read-model.ts @@ -18,6 +18,8 @@ const selectColumns = [ 'mi.id AS milestoneId', 'mi.name AS milestoneName', 'mi.sort_order AS milestoneSortOrder', + 'mi.started_at AS milestoneStartedAt', + 'mp.transition_condition AS milestoneTransitionCondition', 'ms.id AS strategyId', 'ms.sort_order AS strategySortOrder', 'ms.title AS strategyTitle', @@ -46,6 +48,8 @@ const processReleasePlanRows = (templateRows): ReleasePlan[] => milestoneId, milestoneName, milestoneSortOrder, + milestoneStartedAt, + milestoneTransitionCondition, strategyId, strategySortOrder, strategyTitle, @@ -87,6 +91,8 @@ const processReleasePlanRows = (templateRows): ReleasePlan[] => id: milestoneId, name: milestoneName, sortOrder: milestoneSortOrder, + startedAt: milestoneStartedAt, + transitionCondition: milestoneTransitionCondition, strategies: [], releasePlanDefinitionId: planId, }; @@ -152,6 +158,11 @@ export class ReleasePlanReadModel implements IReleasePlanReadModel { 'mi.release_plan_definition_id', 'rpd.id', ) + .leftJoin( + 'milestone_progressions AS mp', + 'mp.source_milestone', + 'mi.id', + ) .leftJoin('milestone_strategies AS ms', 'ms.milestone_id', 'mi.id') .leftJoin( 'milestone_strategy_segments AS mss', diff --git a/src/lib/openapi/spec/release-plan-milestone-schema.ts b/src/lib/openapi/spec/release-plan-milestone-schema.ts index 185366deba..a228af5053 100644 --- a/src/lib/openapi/spec/release-plan-milestone-schema.ts +++ b/src/lib/openapi/spec/release-plan-milestone-schema.ts @@ -35,6 +35,20 @@ export const releasePlanMilestoneSchema = { 'The ID of the release plan/template that this milestone belongs to.', example: '01JB9GGTGQYEQ9D40R17T3YVW2', }, + startedAt: { + type: 'string', + format: 'date-time', + description: 'The date and time when the milestone was started.', + example: '2024-01-01T00:00:00.000Z', + nullable: true, + }, + transitionCondition: { + type: 'object', + description: + 'The transition condition for the next automated milestone progression.', + additionalProperties: true, + nullable: true, + }, strategies: { type: 'array', description: