mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Show git-notes
This commit is contained in:
		| @@ -125,6 +125,7 @@ func NewFuncMap() []template.FuncMap { | ||||
| 		"RenderCommitMessage":      RenderCommitMessage, | ||||
| 		"RenderCommitMessageLink":  RenderCommitMessageLink, | ||||
| 		"RenderCommitBody":         RenderCommitBody, | ||||
| 		"RenderNote":               RenderNote, | ||||
| 		"IsMultilineCommitMessage": IsMultilineCommitMessage, | ||||
| 		"ThemeColorMetaTag": func() string { | ||||
| 			return setting.UI.ThemeColorMetaTag | ||||
| @@ -392,6 +393,17 @@ func RenderCommitBody(msg, urlPrefix string, metas map[string]string) template.H | ||||
| 	return template.HTML(strings.Join(body[1:], "\n")) | ||||
| } | ||||
|  | ||||
| // RenderNote renders the contents of a git-notes file as a commit message. | ||||
| func RenderNote(msg, urlPrefix string, metas map[string]string) template.HTML { | ||||
| 	cleanMsg := template.HTMLEscapeString(msg) | ||||
| 	fullMessage, err := markup.RenderCommitMessage([]byte(cleanMsg), urlPrefix, "", metas) | ||||
| 	if err != nil { | ||||
| 		log.Error("RenderNote: %v", err) | ||||
| 		return "" | ||||
| 	} | ||||
| 	return template.HTML(string(fullMessage)) | ||||
| } | ||||
|  | ||||
| // IsMultilineCommitMessage checks to see if a commit message contains multiple lines. | ||||
| func IsMultilineCommitMessage(msg string) bool { | ||||
| 	return strings.Count(strings.TrimSpace(msg), "\n") >= 1 | ||||
|   | ||||
| @@ -6,6 +6,7 @@ | ||||
| package repo | ||||
|  | ||||
| import ( | ||||
| 	"io/ioutil" | ||||
| 	"path" | ||||
| 	"strings" | ||||
|  | ||||
| @@ -15,6 +16,7 @@ import ( | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
| 	"code.gitea.io/gitea/modules/templates" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| @@ -246,6 +248,23 @@ func Diff(ctx *context.Context) { | ||||
| 	ctx.Data["Parents"] = parents | ||||
| 	ctx.Data["DiffNotAvailable"] = diff.NumFiles() == 0 | ||||
| 	ctx.Data["SourcePath"] = setting.AppSubURL + "/" + path.Join(userName, repoName, "src", "commit", commitID) | ||||
|  | ||||
| 	notes, err := ctx.Repo.GitRepo.GetCommit("refs/notes/commits") | ||||
| 	if err == nil { | ||||
| 		entry, err := notes.GetTreeEntryByPath(commitID) | ||||
| 		if err == nil { | ||||
| 			blob := entry.Blob() | ||||
| 			dataRc, err := blob.DataAsync() | ||||
| 			if err == nil { | ||||
| 				d, err := ioutil.ReadAll(dataRc) | ||||
| 				dataRc.Close() | ||||
| 				if err == nil { | ||||
| 					ctx.Data["Note"] = string(templates.ToUTF8WithFallback(d)) | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if commit.ParentCount() > 0 { | ||||
| 		ctx.Data["BeforeSourcePath"] = setting.AppSubURL + "/" + path.Join(userName, repoName, "src", "commit", parents[0]) | ||||
| 	} | ||||
|   | ||||
| @@ -65,6 +65,12 @@ | ||||
| 					</div> | ||||
| 				{{end}} | ||||
| 			{{end}} | ||||
| 			{{if .Note}} | ||||
| 				<div class="ui top bottom attached info clearing segment"> | ||||
| 					<h3>git-notes:</h3> | ||||
| 					<pre class="commit-body">{{RenderNote .Note $.RepoLink $.Repository.ComposeMetas}}</pre> | ||||
| 				</div> | ||||
| 			{{end}} | ||||
| 		{{end}} | ||||
|  | ||||
| 		{{template "repo/diff/box" .}} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user