mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-02 20:43:36 +00:00
Merge pull request #637 from AutoMaker-Org/feature/v0.13.0rc-1768936017583-e6ni
feat: implement pipeline step exclusion functionality
This commit is contained in:
@@ -45,6 +45,7 @@ import {
|
||||
AncestorContextSection,
|
||||
EnhanceWithAI,
|
||||
EnhancementHistoryButton,
|
||||
PipelineExclusionControls,
|
||||
type BaseHistoryEntry,
|
||||
} from '../shared';
|
||||
import type { WorkMode } from '../shared';
|
||||
@@ -101,6 +102,7 @@ type FeatureData = {
|
||||
requirePlanApproval: boolean;
|
||||
dependencies?: string[];
|
||||
childDependencies?: string[]; // Feature IDs that should depend on this feature
|
||||
excludedPipelineSteps?: string[]; // Pipeline step IDs to skip for this feature
|
||||
workMode: WorkMode;
|
||||
};
|
||||
|
||||
@@ -118,6 +120,10 @@ interface AddFeatureDialogProps {
|
||||
isMaximized: boolean;
|
||||
parentFeature?: Feature | null;
|
||||
allFeatures?: Feature[];
|
||||
/**
|
||||
* Path to the current project for loading pipeline config.
|
||||
*/
|
||||
projectPath?: string;
|
||||
/**
|
||||
* When a non-main worktree is selected in the board header, this will be set to that worktree's branch.
|
||||
* When set, the dialog will default to 'custom' work mode with this branch pre-filled.
|
||||
@@ -151,6 +157,7 @@ export function AddFeatureDialog({
|
||||
isMaximized,
|
||||
parentFeature = null,
|
||||
allFeatures = [],
|
||||
projectPath,
|
||||
selectedNonMainWorktreeBranch,
|
||||
forceCurrentBranchMode,
|
||||
}: AddFeatureDialogProps) {
|
||||
@@ -194,6 +201,9 @@ export function AddFeatureDialog({
|
||||
const [parentDependencies, setParentDependencies] = useState<string[]>([]);
|
||||
const [childDependencies, setChildDependencies] = useState<string[]>([]);
|
||||
|
||||
// Pipeline exclusion state
|
||||
const [excludedPipelineSteps, setExcludedPipelineSteps] = useState<string[]>([]);
|
||||
|
||||
// Get defaults from store
|
||||
const {
|
||||
defaultPlanningMode,
|
||||
@@ -242,6 +252,9 @@ export function AddFeatureDialog({
|
||||
// Reset dependency selections
|
||||
setParentDependencies([]);
|
||||
setChildDependencies([]);
|
||||
|
||||
// Reset pipeline exclusions (all pipelines enabled by default)
|
||||
setExcludedPipelineSteps([]);
|
||||
}
|
||||
}, [
|
||||
open,
|
||||
@@ -336,6 +349,7 @@ export function AddFeatureDialog({
|
||||
requirePlanApproval,
|
||||
dependencies: finalDependencies,
|
||||
childDependencies: childDependencies.length > 0 ? childDependencies : undefined,
|
||||
excludedPipelineSteps: excludedPipelineSteps.length > 0 ? excludedPipelineSteps : undefined,
|
||||
workMode,
|
||||
};
|
||||
};
|
||||
@@ -362,6 +376,7 @@ export function AddFeatureDialog({
|
||||
setDescriptionHistory([]);
|
||||
setParentDependencies([]);
|
||||
setChildDependencies([]);
|
||||
setExcludedPipelineSteps([]);
|
||||
onOpenChange(false);
|
||||
};
|
||||
|
||||
@@ -704,6 +719,16 @@ export function AddFeatureDialog({
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Pipeline Exclusion Controls */}
|
||||
<div className="pt-2">
|
||||
<PipelineExclusionControls
|
||||
projectPath={projectPath}
|
||||
excludedPipelineSteps={excludedPipelineSteps}
|
||||
onExcludedStepsChange={setExcludedPipelineSteps}
|
||||
testIdPrefix="add-feature-pipeline"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user