| 646 | } |
| 647 | |
| 648 | func (m *Service) dispatchTaskBlocked( |
| 649 | ctx context.Context, |
| 650 | block TaskBlock, |
| 651 | taskRecord Task, |
| 652 | actor ActorContext, |
| 653 | release *BlockTaskAndReleaseRunResult, |
| 654 | ) { |
| 655 | payload := hookspkg.TaskBlockedPayload{ |
| 656 | PayloadBase: hookspkg.PayloadBase{ |
| 657 | Event: hookspkg.HookTaskBlocked, |
| 658 | Timestamp: m.now().UTC(), |
| 659 | }, |
| 660 | TaskContext: m.taskHookContext(taskRecord, actor, release), |
| 661 | BlockID: strings.TrimSpace(block.ID), |
| 662 | Kind: string(block.Kind.Normalize()), |
| 663 | Reason: redactTaskSecretText(strings.TrimSpace(block.Reason)), |
| 664 | Details: redactTaskSecretJSON(cloneRawJSON(block.Details)), |
| 665 | } |
| 666 | _, err := m.taskHooks.DispatchTaskBlocked(taskRunObservationHookContext(ctx), payload) |
| 667 | m.reportTaskHookFailure(hookspkg.HookTaskBlocked, err, taskRecord) |
| 668 | } |
| 669 | |
| 670 | func (m *Service) dispatchTaskUnblocked( |
| 671 | ctx context.Context, |