aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--config/security/securityConfig.go1
-rw-r--r--config/security/securityConfig_test.go2
-rw-r--r--go.mod2
-rw-r--r--go.sum4
-rw-r--r--hugolib/gitinfo.go24
-rw-r--r--hugolib/hugo_sites.go2
6 files changed, 28 insertions, 7 deletions
diff --git a/config/security/securityConfig.go b/config/security/securityConfig.go
index 46a5d0a23..a3ec5197d 100644
--- a/config/security/securityConfig.go
+++ b/config/security/securityConfig.go
@@ -37,6 +37,7 @@ var DefaultConfig = Config{
Allow: MustNewWhitelist(
"^(dart-)?sass(-embedded)?$", // sass, dart-sass, dart-sass-embedded.
"^go$", // for Go Modules
+ "^git$", // For Git info
"^npx$", // used by all Node tools (Babel, PostCSS).
"^postcss$",
"^tailwindcss$",
diff --git a/config/security/securityConfig_test.go b/config/security/securityConfig_test.go
index 87a243012..faa05a97f 100644
--- a/config/security/securityConfig_test.go
+++ b/config/security/securityConfig_test.go
@@ -135,7 +135,7 @@ func TestToTOML(t *testing.T) {
got := DefaultConfig.ToTOML()
c.Assert(got, qt.Equals,
- "[security]\n enableInlineShortcodes = false\n\n [security.exec]\n allow = ['^(dart-)?sass(-embedded)?$', '^go$', '^npx$', '^postcss$', '^tailwindcss$']\n osEnv = ['(?i)^((HTTPS?|NO)_PROXY|PATH(EXT)?|APPDATA|TE?MP|TERM|GO\\w+|(XDG_CONFIG_)?HOME|USERPROFILE|SSH_AUTH_SOCK|DISPLAY|LANG|SYSTEMDRIVE)$']\n\n [security.funcs]\n getenv = ['^HUGO_', '^CI$']\n\n [security.http]\n methods = ['(?i)GET|POST']\n urls = ['.*']",
+ "[security]\n enableInlineShortcodes = false\n\n [security.exec]\n allow = ['^(dart-)?sass(-embedded)?$', '^go$', '^git$', '^npx$', '^postcss$', '^tailwindcss$']\n osEnv = ['(?i)^((HTTPS?|NO)_PROXY|PATH(EXT)?|APPDATA|TE?MP|TERM|GO\\w+|(XDG_CONFIG_)?HOME|USERPROFILE|SSH_AUTH_SOCK|DISPLAY|LANG|SYSTEMDRIVE)$']\n\n [security.funcs]\n getenv = ['^HUGO_', '^CI$']\n\n [security.http]\n methods = ['(?i)GET|POST']\n urls = ['.*']",
)
}
diff --git a/go.mod b/go.mod
index b9b586072..2b7327aa3 100644
--- a/go.mod
+++ b/go.mod
@@ -8,7 +8,7 @@ require (
github.com/aws/aws-sdk-go-v2/service/cloudfront v1.35.4
github.com/bep/clocks v0.5.0
github.com/bep/debounce v1.2.0
- github.com/bep/gitmap v1.4.0
+ github.com/bep/gitmap v1.6.0
github.com/bep/goat v0.5.0
github.com/bep/godartsass v1.2.0
github.com/bep/godartsass/v2 v2.0.0
diff --git a/go.sum b/go.sum
index 54a4a376c..801a32cd2 100644
--- a/go.sum
+++ b/go.sum
@@ -120,6 +120,10 @@ github.com/bep/debounce v1.2.0 h1:wXds8Kq8qRfwAOpAxHrJDbCXgC5aHSzgQb/0gKsHQqo=
github.com/bep/debounce v1.2.0/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0=
github.com/bep/gitmap v1.4.0 h1:GeWbPb2QDTfcZLBQmCB693N3sJmPQfeu81fDrD5r8x8=
github.com/bep/gitmap v1.4.0/go.mod h1:n+3W1f/rot2hynsqEGxGMErPRgT41n9CkGuzPvz9cIw=
+github.com/bep/gitmap v1.5.0 h1:ExDl7HeDaRDG8FXFRTnv20qzbyJlC6ivdOboMYFvrms=
+github.com/bep/gitmap v1.5.0/go.mod h1:n+3W1f/rot2hynsqEGxGMErPRgT41n9CkGuzPvz9cIw=
+github.com/bep/gitmap v1.6.0 h1:sDuQMm9HoTL0LtlrfxjbjgAg2wHQd4nkMup2FInYzhA=
+github.com/bep/gitmap v1.6.0/go.mod h1:n+3W1f/rot2hynsqEGxGMErPRgT41n9CkGuzPvz9cIw=
github.com/bep/goat v0.5.0 h1:S8jLXHCVy/EHIoCY+btKkmcxcXFd34a0Q63/0D4TKeA=
github.com/bep/goat v0.5.0/go.mod h1:Md9x7gRxiWKs85yHlVTvHQw9rg86Bm+Y4SuYE8CTH7c=
github.com/bep/godartsass v1.2.0 h1:E2VvQrxAHAFwbjyOIExAMmogTItSKodoKuijNrGm5yU=
diff --git a/hugolib/gitinfo.go b/hugolib/gitinfo.go
index f0c5dfa27..6b5261084 100644
--- a/hugolib/gitinfo.go
+++ b/hugolib/gitinfo.go
@@ -14,11 +14,13 @@
package hugolib
import (
+ "io"
"path/filepath"
"strings"
"github.com/bep/gitmap"
- "github.com/gohugoio/hugo/config"
+ "github.com/gohugoio/hugo/common/hexec"
+ "github.com/gohugoio/hugo/deps"
"github.com/gohugoio/hugo/resources/page"
"github.com/gohugoio/hugo/source"
)
@@ -38,10 +40,24 @@ func (g *gitInfo) forPage(p page.Page) source.GitInfo {
return source.NewGitInfo(*gi)
}
-func newGitInfo(conf config.AllProvider) (*gitInfo, error) {
- workingDir := conf.BaseConfig().WorkingDir
+func newGitInfo(d *deps.Deps) (*gitInfo, error) {
+ opts := gitmap.Options{
+ Repository: d.Conf.BaseConfig().WorkingDir,
+ GetGitCommandFunc: func(stdout, stderr io.Writer, args ...string) (gitmap.Runner, error) {
+ var argsv []any
+ for _, arg := range args {
+ argsv = append(argsv, arg)
+ }
+ argsv = append(
+ argsv,
+ hexec.WithStdout(stdout),
+ hexec.WithStderr(stderr),
+ )
+ return d.ExecHelper.New("git", argsv...)
+ },
+ }
- gitRepo, err := gitmap.Map(workingDir, "")
+ gitRepo, err := gitmap.Map(opts)
if err != nil {
return nil, err
}
diff --git a/hugolib/hugo_sites.go b/hugolib/hugo_sites.go
index 25a79d65a..659a772f2 100644
--- a/hugolib/hugo_sites.go
+++ b/hugolib/hugo_sites.go
@@ -346,7 +346,7 @@ func (h *HugoSites) GetContentPage(filename string) page.Page {
func (h *HugoSites) loadGitInfo() error {
if h.Configs.Base.EnableGitInfo {
- gi, err := newGitInfo(h.Conf)
+ gi, err := newGitInfo(h.Deps)
if err != nil {
h.Log.Errorln("Failed to read Git log:", err)
} else {