From 1b0992eb2e59de4bbae27ffe122dbaaaa28b0770 Mon Sep 17 00:00:00 2001 From: Aidan Fahey Date: Fri, 26 Jun 2026 12:58:24 -0400 Subject: [PATCH] fix(actions): fix 500 error when canceling a canceling task (#38223) --- services/convert/action_test.go | 10 ++++++++++ services/convert/convert.go | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/services/convert/action_test.go b/services/convert/action_test.go index 0cf72d28a4..ee7f1d107d 100644 --- a/services/convert/action_test.go +++ b/services/convert/action_test.go @@ -177,3 +177,13 @@ func TestToActionWorkflowJob_StepStatusIsIndependentOfJobStatus(t *testing.T) { assert.Equal(t, "completed", apiJob.Steps[1].Status, "step 1 status") assert.Equal(t, "failure", apiJob.Steps[1].Conclusion, "step 1 conclusion") } + +func TestToActionsStatus_Cancelling(t *testing.T) { + action, conclusion := ToActionsStatus(actions_model.StatusCancelling) + assert.Equal(t, "in_progress", action) + assert.Empty(t, conclusion) +} + +func TestToWorkflowRunAction_Cancelling(t *testing.T) { + assert.Equal(t, "in_progress", ToWorkflowRunAction(actions_model.StatusCancelling)) +} diff --git a/services/convert/convert.go b/services/convert/convert.go index d1437de286..357217908f 100644 --- a/services/convert/convert.go +++ b/services/convert/convert.go @@ -412,7 +412,7 @@ func ToWorkflowRunAction(status actions_model.Status) (action string) { switch status { case actions_model.StatusWaiting, actions_model.StatusBlocked: action = "requested" - case actions_model.StatusRunning: + case actions_model.StatusRunning, actions_model.StatusCancelling: action = "in_progress" default: if status.IsDone() { @@ -430,7 +430,7 @@ func ToActionsStatus(status actions_model.Status) (action, conclusion string) { action = "queued" // "waiting" is a naming conflict of the webhook between Gitea and GitHub Actions case actions_model.StatusBlocked: action = "waiting" // naming conflict (as above) - case actions_model.StatusRunning: + case actions_model.StatusRunning, actions_model.StatusCancelling: action = "in_progress" default: action = "completed"