mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08: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:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							1b53a9e914
						
					
				
				
					commit
					b5b3e0714e
				
			@@ -30,6 +30,7 @@ import (
 | 
			
		||||
	"code.gitea.io/gitea/modules/log"
 | 
			
		||||
	"code.gitea.io/gitea/modules/markup"
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
	api "code.gitea.io/gitea/modules/structs"
 | 
			
		||||
	"code.gitea.io/gitea/modules/upload"
 | 
			
		||||
	"code.gitea.io/gitea/modules/util"
 | 
			
		||||
	"code.gitea.io/gitea/services/gitdiff"
 | 
			
		||||
@@ -789,16 +790,29 @@ func CompareDiff(ctx *context.Context) {
 | 
			
		||||
		ctx.Flash.Warning(renderErrorOfTemplates(ctx, templateErrs), true)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// If a template content is set, prepend the "content". In this case that's only
 | 
			
		||||
	// applicable if you have one commit to compare and that commit has a message.
 | 
			
		||||
	// In that case the commit message will be prepend to the template body.
 | 
			
		||||
	if templateContent, ok := ctx.Data[pullRequestTemplateKey].(string); ok && templateContent != "" {
 | 
			
		||||
		if content, ok := ctx.Data["content"].(string); ok && content != "" {
 | 
			
		||||
	if content, ok := ctx.Data["content"].(string); ok && content != "" {
 | 
			
		||||
		// If a template content is set, prepend the "content". In this case that's only
 | 
			
		||||
		// applicable if you have one commit to compare and that commit has a message.
 | 
			
		||||
		// In that case the commit message will be prepend to the template body.
 | 
			
		||||
		if templateContent, ok := ctx.Data[pullRequestTemplateKey].(string); ok && templateContent != "" {
 | 
			
		||||
			// 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
 | 
			
		||||
			// one empty line between them.
 | 
			
		||||
			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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user