mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-27 10:03:55 +01:00
Pull request yaml template support for including commit body in a field (#22629)
When using a markdown template the commit body is prepended to text in the description. This adds the same functionality for yaml templates, adding the commit message in a field with id "body". Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
parent
1b53a9e914
commit
b5b3e0714e
1 changed files with 19 additions and 5 deletions
|
@ -30,6 +30,7 @@ import (
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/markup"
|
"code.gitea.io/gitea/modules/markup"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
"code.gitea.io/gitea/modules/upload"
|
"code.gitea.io/gitea/modules/upload"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
"code.gitea.io/gitea/services/gitdiff"
|
"code.gitea.io/gitea/services/gitdiff"
|
||||||
|
@ -789,16 +790,29 @@ func CompareDiff(ctx *context.Context) {
|
||||||
ctx.Flash.Warning(renderErrorOfTemplates(ctx, templateErrs), true)
|
ctx.Flash.Warning(renderErrorOfTemplates(ctx, templateErrs), true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// If a template content is set, prepend the "content". In this case that's only
|
if content, ok := ctx.Data["content"].(string); ok && content != "" {
|
||||||
// applicable if you have one commit to compare and that commit has a message.
|
// If a template content is set, prepend the "content". In this case that's only
|
||||||
// In that case the commit message will be prepend to the template body.
|
// applicable if you have one commit to compare and that commit has a message.
|
||||||
if templateContent, ok := ctx.Data[pullRequestTemplateKey].(string); ok && templateContent != "" {
|
// In that case the commit message will be prepend to the template body.
|
||||||
if content, ok := ctx.Data["content"].(string); ok && content != "" {
|
if templateContent, ok := ctx.Data[pullRequestTemplateKey].(string); ok && templateContent != "" {
|
||||||
// Re-use the same key as that's priortized over the "content" key.
|
// Re-use the same key as that's priortized over the "content" key.
|
||||||
// Add two new lines between the content to ensure there's always at least
|
// Add two new lines between the content to ensure there's always at least
|
||||||
// one empty line between them.
|
// one empty line between them.
|
||||||
ctx.Data[pullRequestTemplateKey] = content + "\n\n" + templateContent
|
ctx.Data[pullRequestTemplateKey] = content + "\n\n" + templateContent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// When using form fields, also add content to field with id "body".
|
||||||
|
if fields, ok := ctx.Data["Fields"].([]*api.IssueFormField); ok {
|
||||||
|
for _, field := range fields {
|
||||||
|
if field.ID == "body" {
|
||||||
|
if fieldValue, ok := field.Attributes["value"].(string); ok && fieldValue != "" {
|
||||||
|
field.Attributes["value"] = content + "\n\n" + fieldValue
|
||||||
|
} else {
|
||||||
|
field.Attributes["value"] = content
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.Data["IsAttachmentEnabled"] = setting.Attachment.Enabled
|
ctx.Data["IsAttachmentEnabled"] = setting.Attachment.Enabled
|
||||||
|
|
Loading…
Reference in a new issue