1
0
mirror of https://github.com/go-gitea/gitea.git synced 2024-11-02 08:57:32 -04:00

Refactor git-notes data fetching to a separate function

This commit is contained in:
Vladimir Panteleev 2019-05-20 14:05:26 +00:00
parent 157f7096e7
commit 89dc23f359
No known key found for this signature in database
GPG Key ID: 5004F0FAD051576D
2 changed files with 45 additions and 14 deletions

42
modules/git/notes.go Normal file
View File

@ -0,0 +1,42 @@
// Copyright 2019 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package git
import (
"io/ioutil"
)
// Note stores information about a note created using git-notes.
type Note struct {
Message []byte
}
// GetNote retrieves the git-notes data for a given commit.
func GetNote(repo *Repository, commitID string, note *Note) error {
notes, err := repo.GetCommit("refs/notes/commits")
if err != nil {
return err
}
entry, err := notes.GetTreeEntryByPath(commitID)
if err != nil {
return err
}
blob := entry.Blob()
dataRc, err := blob.DataAsync()
if err != nil {
return err
}
defer dataRc.Close()
d, err := ioutil.ReadAll(dataRc)
if err != nil {
return err
}
note.Message = d
return nil
}

View File

@ -6,7 +6,6 @@
package repo
import (
"io/ioutil"
"path"
"strings"
@ -249,20 +248,10 @@ func Diff(ctx *context.Context) {
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")
note := git.Note{}
err = git.GetNote(ctx.Repo.GitRepo, commitID, &note)
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))
}
}
}
ctx.Data["Note"] = string(templates.ToUTF8WithFallback(note.Message))
}
if commit.ParentCount() > 0 {