mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +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/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 content, ok := ctx.Data["content"].(string); ok && content != "" {
 | 
				
			||||||
		// If a template content is set, prepend the "content". In this case that's only
 | 
							// 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.
 | 
							// 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.
 | 
							// In that case the commit message will be prepend to the template body.
 | 
				
			||||||
		if templateContent, ok := ctx.Data[pullRequestTemplateKey].(string); ok && templateContent != "" {
 | 
							if templateContent, ok := ctx.Data[pullRequestTemplateKey].(string); ok && templateContent != "" {
 | 
				
			||||||
		if content, ok := ctx.Data["content"].(string); ok && content != "" {
 | 
					 | 
				
			||||||
			// 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
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user