ForceReleaseTaskRun force releases one claimed run without requiring the raw claim token.
(c *gin.Context)
| 1716 | |
| 1717 | // ForceReleaseTaskRun force releases one claimed run without requiring the raw claim token. |
| 1718 | func (h *BaseHandlers) ForceReleaseTaskRun(c *gin.Context) { |
| 1719 | manager, ok := h.requireTaskManager(c) |
| 1720 | if !ok { |
| 1721 | return |
| 1722 | } |
| 1723 | runID, err := requiredPathID(c.Param("id"), "run id") |
| 1724 | if err != nil { |
| 1725 | h.respondError(c, StatusForTaskError(err), err) |
| 1726 | return |
| 1727 | } |
| 1728 | var req contract.ForceReleaseTaskRunRequest |
| 1729 | if err := c.ShouldBindJSON(&req); err != nil && !errors.Is(err, io.EOF) { |
| 1730 | h.respondError( |
| 1731 | c, |
| 1732 | http.StatusBadRequest, |
| 1733 | NewTaskValidationError(fmt.Errorf("%s: decode force release run request: %w", h.transportName(), err)), |
| 1734 | ) |
| 1735 | return |
| 1736 | } |
| 1737 | actor, err := h.taskActorContext(c, taskActionForceReleaseRun) |
| 1738 | if err != nil { |
| 1739 | h.respondError(c, StatusForTaskError(err), err) |
| 1740 | return |
| 1741 | } |
| 1742 | run, err := manager.ForceReleaseRun( |
| 1743 | c.Request.Context(), |
| 1744 | runID, |
| 1745 | taskpkg.ForceReleaseRun{Reason: req.Reason, Metadata: req.Metadata}, |
| 1746 | actor, |
| 1747 | ) |
| 1748 | if err != nil { |
| 1749 | h.respondError(c, StatusForTaskError(err), err) |
| 1750 | return |
| 1751 | } |
| 1752 | c.JSON(http.StatusOK, contract.TaskRunResponse{Run: TaskRunPayloadFromRun(run)}) |
| 1753 | } |
| 1754 | |
| 1755 | // ForceFailTaskRun force fails one queued or claimed run without requiring the raw claim token. |
| 1756 | func (h *BaseHandlers) ForceFailTaskRun(c *gin.Context) { |
nothing calls this directly
no test coverage detected