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:
parent
9948e577ee
commit
43fa239e72
@ -6,5 +6,6 @@ export interface ReleasePlanMilestone {
|
|||||||
sortOrder: number;
|
sortOrder: number;
|
||||||
releasePlanDefinitionId: string;
|
releasePlanDefinitionId: string;
|
||||||
startedAt?: Date;
|
startedAt?: Date;
|
||||||
|
transitionCondition?: object;
|
||||||
strategies?: ReleasePlanMilestoneStrategy[];
|
strategies?: ReleasePlanMilestoneStrategy[];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,6 +18,8 @@ const selectColumns = [
|
|||||||
'mi.id AS milestoneId',
|
'mi.id AS milestoneId',
|
||||||
'mi.name AS milestoneName',
|
'mi.name AS milestoneName',
|
||||||
'mi.sort_order AS milestoneSortOrder',
|
'mi.sort_order AS milestoneSortOrder',
|
||||||
|
'mi.started_at AS milestoneStartedAt',
|
||||||
|
'mp.transition_condition AS milestoneTransitionCondition',
|
||||||
'ms.id AS strategyId',
|
'ms.id AS strategyId',
|
||||||
'ms.sort_order AS strategySortOrder',
|
'ms.sort_order AS strategySortOrder',
|
||||||
'ms.title AS strategyTitle',
|
'ms.title AS strategyTitle',
|
||||||
@ -46,6 +48,8 @@ const processReleasePlanRows = (templateRows): ReleasePlan[] =>
|
|||||||
milestoneId,
|
milestoneId,
|
||||||
milestoneName,
|
milestoneName,
|
||||||
milestoneSortOrder,
|
milestoneSortOrder,
|
||||||
|
milestoneStartedAt,
|
||||||
|
milestoneTransitionCondition,
|
||||||
strategyId,
|
strategyId,
|
||||||
strategySortOrder,
|
strategySortOrder,
|
||||||
strategyTitle,
|
strategyTitle,
|
||||||
@ -87,6 +91,8 @@ const processReleasePlanRows = (templateRows): ReleasePlan[] =>
|
|||||||
id: milestoneId,
|
id: milestoneId,
|
||||||
name: milestoneName,
|
name: milestoneName,
|
||||||
sortOrder: milestoneSortOrder,
|
sortOrder: milestoneSortOrder,
|
||||||
|
startedAt: milestoneStartedAt,
|
||||||
|
transitionCondition: milestoneTransitionCondition,
|
||||||
strategies: [],
|
strategies: [],
|
||||||
releasePlanDefinitionId: planId,
|
releasePlanDefinitionId: planId,
|
||||||
};
|
};
|
||||||
@ -152,6 +158,11 @@ export class ReleasePlanReadModel implements IReleasePlanReadModel {
|
|||||||
'mi.release_plan_definition_id',
|
'mi.release_plan_definition_id',
|
||||||
'rpd.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_strategies AS ms', 'ms.milestone_id', 'mi.id')
|
||||||
.leftJoin(
|
.leftJoin(
|
||||||
'milestone_strategy_segments AS mss',
|
'milestone_strategy_segments AS mss',
|
||||||
|
|||||||
@ -35,6 +35,20 @@ export const releasePlanMilestoneSchema = {
|
|||||||
'The ID of the release plan/template that this milestone belongs to.',
|
'The ID of the release plan/template that this milestone belongs to.',
|
||||||
example: '01JB9GGTGQYEQ9D40R17T3YVW2',
|
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: {
|
strategies: {
|
||||||
type: 'array',
|
type: 'array',
|
||||||
description:
|
description:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user