MCPcopy Create free account
hub / github.com/AutoForgeAI/autoforge / create_feature

Function create_feature

server/routers/features.py:169–212  ·  view source on GitHub ↗

Create a new feature/test case manually.

(project_name: str, feature: FeatureCreate)

Source from the content-addressed store, hash-verified

167
168@router.post("", response_model=FeatureResponse)
169async def create_feature(project_name: str, feature: FeatureCreate):
170 """Create a new feature/test case manually."""
171 project_name = validate_project_name(project_name)
172 project_dir = _get_project_path(project_name)
173
174 if not project_dir:
175 raise HTTPException(status_code=404, detail=f"Project '{project_name}' not found in registry")
176
177 if not project_dir.exists():
178 raise HTTPException(status_code=404, detail="Project directory not found")
179
180 _, Feature = _get_db_classes()
181
182 try:
183 with get_db_session(project_dir) as session:
184 # Get next priority if not specified
185 if feature.priority is None:
186 max_priority = session.query(Feature).order_by(Feature.priority.desc()).first()
187 priority = (max_priority.priority + 1) if max_priority else 1
188 else:
189 priority = feature.priority
190
191 # Create new feature
192 db_feature = Feature(
193 priority=priority,
194 category=feature.category,
195 name=feature.name,
196 description=feature.description,
197 steps=feature.steps,
198 dependencies=feature.dependencies if feature.dependencies else None,
199 passes=False,
200 in_progress=False,
201 )
202
203 session.add(db_feature)
204 session.commit()
205 session.refresh(db_feature)
206
207 return feature_to_response(db_feature)
208 except HTTPException:
209 raise
210 except Exception:
211 logger.exception("Failed to create feature")
212 raise HTTPException(status_code=500, detail="Failed to create feature")
213
214
215# ============================================================================

Callers

nothing calls this directly

Calls 5

FeatureClass · 0.90
_get_db_classesFunction · 0.85
get_db_sessionFunction · 0.85
feature_to_responseFunction · 0.85
validate_project_nameFunction · 0.70

Tested by

no test coverage detected