StartTaskRun starts one claimed run.
(c *gin.Context)
| 1540 | |
| 1541 | // StartTaskRun starts one claimed run. |
| 1542 | func (h *BaseHandlers) StartTaskRun(c *gin.Context) { |
| 1543 | manager, ok := h.requireTaskManager(c) |
| 1544 | if !ok { |
| 1545 | return |
| 1546 | } |
| 1547 | |
| 1548 | runID, err := requiredPathID(c.Param("id"), "run id") |
| 1549 | if err != nil { |
| 1550 | h.respondError(c, StatusForTaskError(err), err) |
| 1551 | return |
| 1552 | } |
| 1553 | |
| 1554 | var req contract.StartTaskRunRequest |
| 1555 | if err := decodeOptionalJSON(c, &req); err != nil { |
| 1556 | h.respondError( |
| 1557 | c, |
| 1558 | http.StatusBadRequest, |
| 1559 | NewTaskValidationError(fmt.Errorf("%s: decode start run request: %w", h.transportName(), err)), |
| 1560 | ) |
| 1561 | return |
| 1562 | } |
| 1563 | |
| 1564 | actor, err := h.taskActorContext(c, taskActionStartRun) |
| 1565 | if err != nil { |
| 1566 | h.respondError(c, StatusForTaskError(err), err) |
| 1567 | return |
| 1568 | } |
| 1569 | |
| 1570 | startReq, err := startTaskRunFromRequest(req) |
| 1571 | if err != nil { |
| 1572 | h.respondError(c, StatusForTaskError(err), err) |
| 1573 | return |
| 1574 | } |
| 1575 | |
| 1576 | run, err := manager.StartRun(c.Request.Context(), runID, startReq, actor) |
| 1577 | if err != nil { |
| 1578 | h.respondError(c, StatusForTaskError(err), err) |
| 1579 | return |
| 1580 | } |
| 1581 | |
| 1582 | c.JSON(http.StatusOK, contract.TaskRunResponse{Run: TaskRunPayloadFromRun(run)}) |
| 1583 | } |
| 1584 | |
| 1585 | // AttachTaskRunSession binds one existing session to a run. |
| 1586 | func (h *BaseHandlers) AttachTaskRunSession(c *gin.Context) { |
nothing calls this directly
no test coverage detected