MCPcopy Index your code
hub / github.com/hunvreus/devpush / project_rollback

Function project_rollback

app/routers/project.py:1306–1362  ·  view source on GitHub ↗
(
    request: Request,
    project: Project = Depends(get_project_by_name),
    current_user: User = Depends(get_current_user),
    team_and_membership: tuple[Team, TeamMember] = Depends(get_team_by_slug),
    deployment: Deployment = Depends(get_deployment_by_id),
    db: AsyncSession = Depends(get_db),
    redis_client: Redis = Depends(get_redis_client),
    settings: Settings = Depends(get_settings),
)

Source from the content-addressed store, hash-verified

1304 name="project_rollback",
1305)
1306async def project_rollback(
1307 request: Request,
1308 project: Project = Depends(get_project_by_name),
1309 current_user: User = Depends(get_current_user),
1310 team_and_membership: tuple[Team, TeamMember] = Depends(get_team_by_slug),
1311 deployment: Deployment = Depends(get_deployment_by_id),
1312 db: AsyncSession = Depends(get_db),
1313 redis_client: Redis = Depends(get_redis_client),
1314 settings: Settings = Depends(get_settings),
1315):
1316 team, membership = team_and_membership
1317
1318 form: Any = await ProjectDeploymentRollbackForm.from_formdata(request)
1319
1320 if request.method == "POST" and await form.validate_on_submit():
1321 try:
1322 environment = project.get_environment_by_id(form.environment_id.data)
1323 if not environment:
1324 raise ValueError("Environment not found.")
1325
1326 await DeploymentService().rollback(
1327 environment=environment,
1328 project=project,
1329 db=db,
1330 redis_client=redis_client,
1331 settings=settings,
1332 )
1333
1334 flash(
1335 request,
1336 _(
1337 'Environment "%(environment_id)s" rolled back to deployment %(deployment_id)s.',
1338 environment_id=environment["id"],
1339 deployment_id=deployment.id,
1340 ),
1341 "success",
1342 )
1343
1344 except Exception as e:
1345 logger.error(f"Error rolling back project: {str(e)}")
1346 flash(request, _("Error rolling back project."), "error")
1347 else:
1348 for error in form.errors.values():
1349 for e in error:
1350 flash(request, _("Rollback failed: %(error)s", error=e), "error")
1351
1352 return TemplateResponse(
1353 request=request,
1354 name="project/partials/_dialog-rollback-form.html",
1355 context={
1356 "current_user": current_user,
1357 "team": team,
1358 "project": project,
1359 "form": form,
1360 "deployment": deployment,
1361 },
1362 )
1363

Callers

nothing calls this directly

Calls 6

DeploymentServiceClass · 0.90
flashFunction · 0.90
TemplateResponseFunction · 0.90
get_environment_by_idMethod · 0.80
rollbackMethod · 0.80
_Function · 0.50

Tested by

no test coverage detected