@@ -5,6 +5,8 @@ package mailer
55
66import (
77 "bytes"
8+ api "code.gitea.io/gitea/modules/structs"
9+ "code.gitea.io/gitea/services/convert"
810 "context"
911 "fmt"
1012 "sort"
@@ -45,13 +47,13 @@ func sendActionsWorkflowRunStatusEmail(ctx context.Context, repo *repo_model.Rep
4547 }
4648 subject = fmt .Sprintf ("%s: %s (%s)" , subject , run .WorkflowID , base .ShortSha (run .CommitSHA ))
4749
48- jobs , err := actions_model .GetRunJobsByRunID (ctx , run .ID )
50+ jobs0 , err := actions_model .GetRunJobsByRunID (ctx , run .ID )
4951 if err != nil {
5052 log .Error ("GetRunJobsByRunID: %v" , err )
5153 } else {
52- sort .SliceStable (jobs , func (i , j int ) bool {
53- si := jobs [i ].Status
54- sj := jobs [j ].Status
54+ sort .SliceStable (jobs0 , func (i , j int ) bool {
55+ si := jobs0 [i ].Status
56+ sj := jobs0 [j ].Status
5557 if si .IsSuccess () {
5658 si = 99
5759 }
@@ -61,6 +63,15 @@ func sendActionsWorkflowRunStatusEmail(ctx context.Context, repo *repo_model.Rep
6163 return si < sj
6264 })
6365 }
66+ convertedJobs0 := make ([]* api.ActionWorkflowJob , 0 , len (jobs0 ))
67+ for _ , job := range jobs0 {
68+ c , err := convert .ToActionWorkflowJob (ctx , repo , nil , job )
69+ if err != nil {
70+ log .Error ("convert.ToActionWorkflowJob: %v" , err )
71+ continue
72+ }
73+ convertedJobs0 = append (convertedJobs0 , c )
74+ }
6475
6576 displayName := fromDisplayName (sender )
6677
@@ -70,14 +81,24 @@ func sendActionsWorkflowRunStatusEmail(ctx context.Context, repo *repo_model.Rep
7081 }
7182 for lang , tos := range langMap {
7283 locale := translation .NewLocale (lang )
84+ var runStatusText string
85+ switch run .Status {
86+ case actions_model .StatusSuccess :
87+ runStatusText = locale .TrString ("actions.status.success" )
88+ case actions_model .StatusFailure :
89+ runStatusText = locale .TrString ("actions.status.failure" )
90+ case actions_model .StatusCancelled :
91+ runStatusText = locale .TrString ("actions.status.cancelled" )
92+ }
7393 var mailBody bytes.Buffer
7494 if err := bodyTemplates .ExecuteTemplate (& mailBody , tplWorkflowRun , map [string ]any {
75- "Subject" : subject ,
76- "Repo" : repo ,
77- "Run" : run ,
78- "Jobs" : jobs ,
79- "locale" : locale ,
80- "Language" : locale .Language (),
95+ "Subject" : subject ,
96+ "Repo" : repo ,
97+ "Run" : run ,
98+ "RunStatusText" : runStatusText ,
99+ "Jobs" : convertedJobs0 ,
100+ "locale" : locale ,
101+ "Language" : locale .Language (),
81102 }); err != nil {
82103 log .Error ("ExecuteTemplate [%s]: %v" , tplWorkflowRun , err )
83104 }
0 commit comments