diff --git a/clientapi/routing/routing.go b/clientapi/routing/routing.go index e8b38a049..b5c18fbd2 100644 --- a/clientapi/routing/routing.go +++ b/clientapi/routing/routing.go @@ -19,6 +19,8 @@ import ( "net/http" "strings" + "runtime/debug" + "github.com/gorilla/mux" appserviceAPI "github.com/matrix-org/dendrite/appservice/api" "github.com/matrix-org/dendrite/clientapi/api" @@ -41,6 +43,17 @@ import ( "github.com/sirupsen/logrus" ) +var commitHash = func() string { + if info, ok := debug.ReadBuildInfo(); ok { + for _, setting := range info.Settings { + if setting.Key == "vcs.revision" { + return setting.Value + } + } + } + return "" +}() + // Setup registers HTTP handlers with the given ServeMux. It also supplies the given http.Client // to clients which need to make outbound HTTP requests. // @@ -101,6 +114,7 @@ func Setup( JSON: struct { Versions []string `json:"versions"` UnstableFeatures map[string]bool `json:"unstable_features"` + CommitHash string `json:"commit_hash"` }{Versions: []string{ "r0.0.1", "r0.1.0", @@ -112,7 +126,7 @@ func Setup( "v1.0", "v1.1", "v1.2", - }, UnstableFeatures: unstableFeatures}, + }, UnstableFeatures: unstableFeatures, CommitHash: commitHash}, } }), ).Methods(http.MethodGet, http.MethodOptions)