git: file content at ref
This commit is contained in:
parent
6857a2f002
commit
ab30497e16
19
git/git.go
19
git/git.go
|
@ -64,6 +64,25 @@ func FilesAtRef(r *git.Repository, hash plumbing.Hash, path string) ([]NiceTree,
|
||||||
return files, nil
|
return files, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func FileContentAtRef(r *git.Repository, hash plumbing.Hash, path string) (string, error) {
|
||||||
|
c, err := r.CommitObject(hash)
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("commit object: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
tree, err := c.Tree()
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("file tree: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
file, err := tree.File(path)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
return file.Contents()
|
||||||
|
}
|
||||||
|
|
||||||
func makeNiceTree(es []object.TreeEntry) []NiceTree {
|
func makeNiceTree(es []object.TreeEntry) []NiceTree {
|
||||||
nts := []NiceTree{}
|
nts := []NiceTree{}
|
||||||
for _, e := range es {
|
for _, e := range es {
|
||||||
|
|
Loading…
Reference in New Issue