Suponiendo que está utilizando el popular paquete github.com/go-redis/redis, el valor de retorno de HGetAll(key).Result()
es una map[string]string
(doc). La expresión someMap["has_ended"]
evalúa a la cadena vacía si la clave no está presente.
Si hasEnded es verdadero si y solo si la clave está presente con el valor "verdadero", entonces use lo siguiente:
hasEnded := someMap["has_ended"] == "true"
Use strconv.ParseBool para manejar un rango más amplio de valores posibles (1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False):
hasEnded, err := strconv.ParseBool(someMap["has_ended"])
if err != nil {
// handle invalid value or missing value, possibly by setting hasEnded to false
}