Browse Source

Refactor git-notes data fetching to a separate function

pull/6984/head
Vladimir Panteleev 6 years ago
parent
commit
89dc23f359
No known key found for this signature in database
GPG Key ID: 5004F0FAD051576D
  1. 42
      modules/git/notes.go
  2. 17
      routers/repo/commit.go

42
modules/git/notes.go

@ -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
}

17
routers/repo/commit.go

@ -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 {

Loading…
Cancel
Save