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