1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-10-27 11:02:16 +01:00

feat: milestone transition condition (#10757)

This commit is contained in:
Mateusz Kwasniewski 2025-10-08 11:30:04 +02:00 committed by GitHub
parent 9948e577ee
commit 43fa239e72
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 26 additions and 0 deletions

View File

@ -6,5 +6,6 @@ export interface ReleasePlanMilestone {
sortOrder: number;
releasePlanDefinitionId: string;
startedAt?: Date;
transitionCondition?: object;
strategies?: ReleasePlanMilestoneStrategy[];
}

View File

@ -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',

View File

@ -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: