mirror of
https://github.com/go-gitea/gitea.git
synced 2025-11-11 19:54:27 +01:00
Decoration
This commit is contained in:
parent
4f3f1b9c8a
commit
a0737b1ff4
@ -35,9 +35,6 @@ func generateMessageIDForActionsWorkflowRunStatusEmail(repo *repo_model.Reposito
|
|||||||
}
|
}
|
||||||
|
|
||||||
func sendActionsWorkflowRunStatusEmail(ctx context.Context, repo *repo_model.Repository, run *actions_model.ActionRun, sender *user_model.User, recipients []*user_model.User) {
|
func sendActionsWorkflowRunStatusEmail(ctx context.Context, repo *repo_model.Repository, run *actions_model.ActionRun, sender *user_model.User, recipients []*user_model.User) {
|
||||||
messageID := generateMessageIDForActionsWorkflowRunStatusEmail(repo, run)
|
|
||||||
headers := generateMetadataHeaders(repo)
|
|
||||||
|
|
||||||
subject := "Run"
|
subject := "Run"
|
||||||
switch run.Status {
|
switch run.Status {
|
||||||
case actions_model.StatusFailure:
|
case actions_model.StatusFailure:
|
||||||
@ -45,17 +42,20 @@ func sendActionsWorkflowRunStatusEmail(ctx context.Context, repo *repo_model.Rep
|
|||||||
case actions_model.StatusCancelled:
|
case actions_model.StatusCancelled:
|
||||||
subject += " cancelled"
|
subject += " cancelled"
|
||||||
case actions_model.StatusSuccess:
|
case actions_model.StatusSuccess:
|
||||||
subject += " is successful"
|
subject += " succeeded"
|
||||||
}
|
}
|
||||||
subject = fmt.Sprintf("%s: %s (%s)", subject, run.WorkflowID, base.ShortSha(run.CommitSHA))
|
subject = fmt.Sprintf("%s: %s (%s)", subject, run.WorkflowID, base.ShortSha(run.CommitSHA))
|
||||||
|
displayName := fromDisplayName(sender)
|
||||||
|
messageID := generateMessageIDForActionsWorkflowRunStatusEmail(repo, run)
|
||||||
|
metadataHeaders := generateMetadataHeaders(repo)
|
||||||
|
|
||||||
jobs0, err := actions_model.GetRunJobsByRunID(ctx, run.ID)
|
jobs, err := actions_model.GetRunJobsByRunID(ctx, run.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("GetRunJobsByRunID: %v", err)
|
log.Error("GetRunJobsByRunID: %v", err)
|
||||||
} else {
|
} else {
|
||||||
sort.SliceStable(jobs0, func(i, j int) bool {
|
sort.SliceStable(jobs, func(i, j int) bool {
|
||||||
si := jobs0[i].Status
|
si := jobs[i].Status
|
||||||
sj := jobs0[j].Status
|
sj := jobs[j].Status
|
||||||
if si.IsSuccess() {
|
if si.IsSuccess() {
|
||||||
si = 99
|
si = 99
|
||||||
}
|
}
|
||||||
@ -65,23 +65,21 @@ func sendActionsWorkflowRunStatusEmail(ctx context.Context, repo *repo_model.Rep
|
|||||||
return si < sj
|
return si < sj
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
convertedJobs := make([]convertedWorkflowJob, 0, len(jobs0))
|
convertedJobs := make([]convertedWorkflowJob, 0, len(jobs))
|
||||||
for _, job := range jobs0 {
|
for _, job := range jobs {
|
||||||
c, err := convert.ToActionWorkflowJob(ctx, repo, nil, job)
|
converted0, err := convert.ToActionWorkflowJob(ctx, repo, nil, job)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("convert.ToActionWorkflowJob: %v", err)
|
log.Error("convert.ToActionWorkflowJob: %v", err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
convertedJobs = append(convertedJobs, convertedWorkflowJob{
|
convertedJobs = append(convertedJobs, convertedWorkflowJob{
|
||||||
HTMLURL: c.HTMLURL,
|
HTMLURL: converted0.HTMLURL,
|
||||||
Name: c.Name,
|
Name: converted0.Name,
|
||||||
Status: job.Status,
|
Status: job.Status,
|
||||||
Attempt: c.RunAttempt,
|
Attempt: converted0.RunAttempt,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
displayName := fromDisplayName(sender)
|
|
||||||
|
|
||||||
langMap := make(map[string][]*user_model.User)
|
langMap := make(map[string][]*user_model.User)
|
||||||
for _, user := range recipients {
|
for _, user := range recipients {
|
||||||
langMap[user.Language] = append(langMap[user.Language], user)
|
langMap[user.Language] = append(langMap[user.Language], user)
|
||||||
@ -91,11 +89,17 @@ func sendActionsWorkflowRunStatusEmail(ctx context.Context, repo *repo_model.Rep
|
|||||||
var runStatusText string
|
var runStatusText string
|
||||||
switch run.Status {
|
switch run.Status {
|
||||||
case actions_model.StatusSuccess:
|
case actions_model.StatusSuccess:
|
||||||
runStatusText = locale.TrString("actions.status.success")
|
runStatusText = "All jobs have succeeded"
|
||||||
case actions_model.StatusFailure:
|
case actions_model.StatusFailure:
|
||||||
runStatusText = locale.TrString("actions.status.failure")
|
runStatusText = "All jobs have failed"
|
||||||
|
for _, job := range jobs {
|
||||||
|
if !job.Status.IsFailure() {
|
||||||
|
runStatusText = "Some jobs were not successful"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
case actions_model.StatusCancelled:
|
case actions_model.StatusCancelled:
|
||||||
runStatusText = locale.TrString("actions.status.cancelled")
|
runStatusText = "All jobs have been cancelled"
|
||||||
}
|
}
|
||||||
var mailBody bytes.Buffer
|
var mailBody bytes.Buffer
|
||||||
if err := bodyTemplates.ExecuteTemplate(&mailBody, tplWorkflowRun, map[string]any{
|
if err := bodyTemplates.ExecuteTemplate(&mailBody, tplWorkflowRun, map[string]any{
|
||||||
@ -122,7 +126,7 @@ func sendActionsWorkflowRunStatusEmail(ctx context.Context, repo *repo_model.Rep
|
|||||||
for k, v := range generateSenderRecipientHeaders(sender, rec) {
|
for k, v := range generateSenderRecipientHeaders(sender, rec) {
|
||||||
msg.SetHeader(k, v)
|
msg.SetHeader(k, v)
|
||||||
}
|
}
|
||||||
for k, v := range headers {
|
for k, v := range metadataHeaders {
|
||||||
msg.SetHeader(k, v)
|
msg.SetHeader(k, v)
|
||||||
}
|
}
|
||||||
msg.SetHeader("Message-ID", messageID)
|
msg.SetHeader("Message-ID", messageID)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user