1
0
mirror of https://github.com/Luzifer/git-credential-vault.git synced 2024-09-19 16:12:57 +00:00
git-credential-vault/vault.go
Knut Ahlers 0ec1f62a58
Initial version
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2020-04-01 14:19:29 +02:00

37 lines
756 B
Go

package main
import (
"path"
"github.com/hashicorp/vault/api"
"github.com/pkg/errors"
)
func getCredentialSetFromVault(host string) (map[string]string, error) {
client, err := api.NewClient(nil)
if err != nil {
return nil, errors.Wrap(err, "Unable to create Vault client")
}
secret, err := client.Logical().Read(path.Join(cfg.VaultPathPrefix, host))
if err != nil {
return nil, errors.Wrap(err, "Unable to fetch secret from Vault")
}
if secret == nil || secret.Data == nil {
return nil, errors.New("Found no data")
}
var out = map[string]string{}
for k, v := range secret.Data {
vs, ok := v.(string)
if !ok {
return nil, errors.Errorf("Key %q contained invalid data type %T", k, v)
}
out[k] = vs
}
return out, nil
}