mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-31 06:42:03 +00:00
feat: implement pipeline feature for automated workflow steps
- Introduced a new pipeline service to manage custom workflow steps that execute after a feature is marked "In Progress". - Added API endpoints for configuring, saving, adding, updating, deleting, and reordering pipeline steps. - Enhanced the UI to support pipeline settings, including a dialog for managing steps and integration with the Kanban board. - Updated the application state management to handle pipeline configurations per project. - Implemented dynamic column generation in the Kanban board to display pipeline steps between "In Progress" and "Waiting Approval". - Added documentation for the new pipeline feature, including usage instructions and configuration details. This feature allows for a more structured workflow, enabling automated processes such as code reviews and testing after feature implementation.
This commit is contained in:
@@ -1125,6 +1125,102 @@ export class HttpApiClient implements ElectronAPI {
|
||||
return this.subscribeToEvent('backlog-plan:event', callback as EventCallback);
|
||||
},
|
||||
};
|
||||
|
||||
// Pipeline API - custom workflow pipeline steps
|
||||
pipeline = {
|
||||
getConfig: (
|
||||
projectPath: string
|
||||
): Promise<{
|
||||
success: boolean;
|
||||
config?: {
|
||||
version: 1;
|
||||
steps: Array<{
|
||||
id: string;
|
||||
name: string;
|
||||
order: number;
|
||||
instructions: string;
|
||||
colorClass: string;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}>;
|
||||
};
|
||||
error?: string;
|
||||
}> => this.post('/api/pipeline/config', { projectPath }),
|
||||
|
||||
saveConfig: (
|
||||
projectPath: string,
|
||||
config: {
|
||||
version: 1;
|
||||
steps: Array<{
|
||||
id: string;
|
||||
name: string;
|
||||
order: number;
|
||||
instructions: string;
|
||||
colorClass: string;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}>;
|
||||
}
|
||||
): Promise<{ success: boolean; error?: string }> =>
|
||||
this.post('/api/pipeline/config/save', { projectPath, config }),
|
||||
|
||||
addStep: (
|
||||
projectPath: string,
|
||||
step: {
|
||||
name: string;
|
||||
order: number;
|
||||
instructions: string;
|
||||
colorClass: string;
|
||||
}
|
||||
): Promise<{
|
||||
success: boolean;
|
||||
step?: {
|
||||
id: string;
|
||||
name: string;
|
||||
order: number;
|
||||
instructions: string;
|
||||
colorClass: string;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
};
|
||||
error?: string;
|
||||
}> => this.post('/api/pipeline/steps/add', { projectPath, step }),
|
||||
|
||||
updateStep: (
|
||||
projectPath: string,
|
||||
stepId: string,
|
||||
updates: Partial<{
|
||||
name: string;
|
||||
order: number;
|
||||
instructions: string;
|
||||
colorClass: string;
|
||||
}>
|
||||
): Promise<{
|
||||
success: boolean;
|
||||
step?: {
|
||||
id: string;
|
||||
name: string;
|
||||
order: number;
|
||||
instructions: string;
|
||||
colorClass: string;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
};
|
||||
error?: string;
|
||||
}> => this.post('/api/pipeline/steps/update', { projectPath, stepId, updates }),
|
||||
|
||||
deleteStep: (
|
||||
projectPath: string,
|
||||
stepId: string
|
||||
): Promise<{ success: boolean; error?: string }> =>
|
||||
this.post('/api/pipeline/steps/delete', { projectPath, stepId }),
|
||||
|
||||
reorderSteps: (
|
||||
projectPath: string,
|
||||
stepIds: string[]
|
||||
): Promise<{ success: boolean; error?: string }> =>
|
||||
this.post('/api/pipeline/steps/reorder', { projectPath, stepIds }),
|
||||
};
|
||||
}
|
||||
|
||||
// Singleton instance
|
||||
|
||||
Reference in New Issue
Block a user