diff --git a/internal/version/version.go b/internal/version/version.go index d20f25897..cefdf471a 100644 --- a/internal/version/version.go +++ b/internal/version/version.go @@ -19,6 +19,7 @@ package version // import "helm.sh/helm/v3/internal/version" import ( "flag" "runtime" + "runtime/debug" "strings" ) @@ -79,3 +80,22 @@ func Get() BuildInfo { } return v } + +func init() { + if gitCommit != "" || gitTreeState != "" { + return + } + info, ok := debug.ReadBuildInfo() + if !ok { + return + } + for _, setting := range info.Settings { + if setting.Key == "vcs.revision" && setting.Value != "" { + gitCommit = setting.Value + } else if setting.Key == "vcs.modified" && setting.Value == "true" { + gitTreeState = "dirty" + } else if setting.Key == "vcs.modified" && setting.Value == "false" { + gitTreeState = "clean" + } + } +}