1
1
mirror of https://github.com/go-gitea/gitea synced 2024-12-22 16:44:26 +00:00

Use path not filepath in template filenames (#21993)

Paths in git are always separated by `/` not `\` - therefore we should
`path` and not `filepath`

Fix #21987

Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
zeripath 2022-12-01 23:56:51 +00:00 committed by GitHub
parent f0bd219a5e
commit 64973cf18f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -6,7 +6,7 @@ package template
import ( import (
"fmt" "fmt"
"io" "io"
"path/filepath" "path"
"strconv" "strconv"
"code.gitea.io/gitea/modules/git" "code.gitea.io/gitea/modules/git"
@ -43,7 +43,7 @@ func Unmarshal(filename string, content []byte) (*api.IssueTemplate, error) {
// UnmarshalFromEntry parses out a valid template from the blob in entry // UnmarshalFromEntry parses out a valid template from the blob in entry
func UnmarshalFromEntry(entry *git.TreeEntry, dir string) (*api.IssueTemplate, error) { func UnmarshalFromEntry(entry *git.TreeEntry, dir string) (*api.IssueTemplate, error) {
return unmarshalFromEntry(entry, filepath.Join(dir, entry.Name())) return unmarshalFromEntry(entry, path.Join(dir, entry.Name())) // Filepaths in Git are ALWAYS '/' separated do not use filepath here
} }
// UnmarshalFromCommit parses out a valid template from the commit // UnmarshalFromCommit parses out a valid template from the commit
@ -108,7 +108,7 @@ func unmarshal(filename string, content []byte) (*api.IssueTemplate, error) {
// It could be a valid markdown with two horizontal lines, or an invalid markdown with wrong metadata. // It could be a valid markdown with two horizontal lines, or an invalid markdown with wrong metadata.
it.Content = string(content) it.Content = string(content)
it.Name = filepath.Base(it.FileName) it.Name = path.Base(it.FileName) // paths in Git are always '/' separated - do not use filepath!
it.About, _ = util.SplitStringAtByteN(it.Content, 80) it.About, _ = util.SplitStringAtByteN(it.Content, 80)
} else { } else {
it.Content = templateBody it.Content = templateBody