From 6e7d6d5829a87b5948ae0598d19d49f5ddbf7274 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 31 Aug 2020 23:39:58 +0200 Subject: [PATCH] Remove keyring support --- README.md | 7 +- chezmoi.io/content/_index.md | 9 +- cmd/config.go | 1 - cmd/docs.gen.go | 49 ---------- cmd/helps.gen.go | 2 - cmd/secretkeyring.go | 57 ----------- cmd/secretkeyringget.go | 29 ------ cmd/secretkeyringset.go | 38 -------- completions/chezmoi-completion.bash | 145 ---------------------------- completions/chezmoi.zsh | 74 -------------- docs/HOWTO.md | 30 ------ docs/REFERENCE.md | 19 ---- go.mod | 3 - go.sum | 14 --- 14 files changed, 7 insertions(+), 470 deletions(-) delete mode 100644 cmd/secretkeyring.go delete mode 100644 cmd/secretkeyringget.go delete mode 100644 cmd/secretkeyringset.go diff --git a/README.md b/README.md index e2ba0d6f611..f0772acab72 100644 --- a/README.md +++ b/README.md @@ -78,10 +78,9 @@ secrets from [1Password](https://1password.com/), [Bitwarden](https://bitwarden.com/), [gopass](https://www.gopass.pw/), [KeePassXC](https://keepassxc.org/), [LastPass](https://lastpass.com/), [pass](https://www.passwordstore.org/), [Vault](https://www.vaultproject.io/), -Keychain, [Keyring](https://wiki.gnome.org/Projects/GnomeKeyring), or any -command-line utility of your choice. You can encrypt individual files with -[GnuPG](https://www.gnupg.org). You can checkout your dotfiles repo on as many -machines as you want without revealing any secrets to anyone. +or any command-line utility of your choice. You can encrypt individual files +with [GnuPG](https://www.gnupg.org). You can checkout your dotfiles repo on as +many machines as you want without revealing any secrets to anyone. ### Transparent diff --git a/chezmoi.io/content/_index.md b/chezmoi.io/content/_index.md index cb38b645cd2..007ed80ee78 100644 --- a/chezmoi.io/content/_index.md +++ b/chezmoi.io/content/_index.md @@ -61,11 +61,10 @@ the configuration file in the format of your choice. chezmoi can retrieve secrets from [1Password](https://1password.com/), [Bitwarden](https://bitwarden.com/), [gopass](https://www.gopass.pw/), [KeePassXC](https://keepassxc.org/), [LastPass](https://lastpass.com/), -[pass](https://www.passwordstore.org/), [Vault](https://www.vaultproject.io/), -Keychain, [Keyring](https://wiki.gnome.org/Projects/GnomeKeyring), or any -command-line utility of your choice. You can encrypt individual files with -[GnuPG](https://www.gnupg.org). You can checkout your dotfiles repo on as many -machines as you want without revealing any secrets to anyone. +[pass](https://www.passwordstore.org/), [Vault](https://www.vaultproject.io/),, +or any command-line utility of your choice. You can encrypt individual files +with [GnuPG](https://www.gnupg.org). You can checkout your dotfiles repo on as +many machines as you want without revealing any secrets to anyone. ### Transparent diff --git a/cmd/config.go b/cmd/config.go index 8971aed37bb..e503ccbc05d 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -90,7 +90,6 @@ type Config struct { executeTemplate executeTemplateCmdConfig _import importCmdConfig init initCmdConfig - keyring keyringCmdConfig managed managedCmdConfig purge purgeCmdConfig remove removeCmdConfig diff --git a/cmd/docs.gen.go b/cmd/docs.gen.go index 0c6a74b9064..4915a0922af 100644 --- a/cmd/docs.gen.go +++ b/cmd/docs.gen.go @@ -624,7 +624,6 @@ func init() { " * [Use gopass to keep your secrets](#use-gopass-to-keep-your-secrets)\n" + " * [Use gpg to keep your secrets](#use-gpg-to-keep-your-secrets)\n" + " * [Use KeePassXC to keep your secrets](#use-keepassxc-to-keep-your-secrets)\n" + - " * [Use a keyring to keep your secrets](#use-a-keyring-to-keep-your-secrets)\n" + " * [Use LastPass to keep your secrets](#use-lastpass-to-keep-your-secrets)\n" + " * [Use 1Password to keep your secrets](#use-1password-to-keep-your-secrets)\n" + " * [Use pass to keep your secrets](#use-pass-to-keep-your-secrets)\n" + @@ -1121,35 +1120,6 @@ func init() { "\n" + " {{ keepassxcAttribute \"SSH Key\" \"private-key\" }}\n" + "\n" + - "### Use a keyring to keep your secrets\n" + - "\n" + - "chezmoi includes support for Keychain (on macOS), GNOME Keyring (on Linux), and\n" + - "Windows Credentials Manager (on Windows) via the\n" + - "[`zalando/go-keyring`](https://github.com/zalando/go-keyring) library.\n" + - "\n" + - "Set passwords with:\n" + - "\n" + - " $ chezmoi keyring set --service= --user=\n" + - " Password: xxxxxxxx\n" + - "\n" + - "The password can then be used in templates using the `keyring` function which\n" + - "takes the service and user as arguments.\n" + - "\n" + - "For example, save a GitHub access token in keyring with:\n" + - "\n" + - " $ chezmoi keyring set --service=github --user=\n" + - " Password: xxxxxxxx\n" + - "\n" + - "and then include it in your `~/.gitconfig` file with:\n" + - "\n" + - " [github]\n" + - " user = \"{{ .github.user }}\"\n" + - " token = \"{{ keyring \"github\" .github.user }}\"\n" + - "\n" + - "You can query the keyring from the command line:\n" + - "\n" + - " chezmoi keyring get --service=github --user=\n" + - "\n" + "### Use LastPass to keep your secrets\n" + "\n" + "chezmoi includes support for [LastPass](https://lastpass.com) using the\n" + @@ -1847,7 +1817,6 @@ func init() { " * [`joinPath` *elements*](#joinpath-elements)\n" + " * [`keepassxc` *entry*](#keepassxc-entry)\n" + " * [`keepassxcAttribute` *entry* *attribute*](#keepassxcattribute-entry-attribute)\n" + - " * [`keyring` *service* *user*](#keyring-service-user)\n" + " * [`lastpass` *id*](#lastpass-id)\n" + " * [`lastpassRaw` *id*](#lastpassraw-id)\n" + " * [`lookPath` *file*](#lookpath-file)\n" + @@ -2590,8 +2559,6 @@ func init() { "#### `secret` examples\n" + "\n" + " chezmoi secret bitwarden list items\n" + - " chezmoi secret keyring set --service service --user user\n" + - " chezmoi secret keyring get --service service --user user\n" + " chezmoi secret lastpass ls\n" + " chezmoi secret lastpass -- show --format=json id\n" + " chezmoi secret onepassword list items\n" + @@ -2817,22 +2784,6 @@ func init() { "\n" + " {{ keepassxcAttribute \"SSH Key\" \"private-key\" }}\n" + "\n" + - "### `keyring` *service* *user*\n" + - "\n" + - "`keyring` retrieves the password associated with *service* and *user* from the\n" + - "user's keyring.\n" + - "\n" + - "| OS | Keyring |\n" + - "| ----- | ------------- |\n" + - "| macOS | Keychain |\n" + - "| Linux | GNOME Keyring |\n" + - "\n" + - "#### `keyring` examples\n" + - "\n" + - " [github]\n" + - " user = \"{{ .github.user }}\"\n" + - " token = \"{{ keyring \"github\" .github.user }}\"\n" + - "\n" + "### `lastpass` *id*\n" + "\n" + "`lastpass` returns structured data from [LastPass](https://lastpass.com) using\n" + diff --git a/cmd/helps.gen.go b/cmd/helps.gen.go index 50768088156..99728bb871b 100644 --- a/cmd/helps.gen.go +++ b/cmd/helps.gen.go @@ -439,8 +439,6 @@ var helps = map[string]help{ " chezmoi secret help", example: "" + " chezmoi secret bitwarden list items\n" + - " chezmoi secret keyring set --service service --user user\n" + - " chezmoi secret keyring get --service service --user user\n" + " chezmoi secret lastpass ls\n" + " chezmoi secret lastpass -- show --format=json id\n" + " chezmoi secret onepassword list items\n" + diff --git a/cmd/secretkeyring.go b/cmd/secretkeyring.go deleted file mode 100644 index 53ed4c84083..00000000000 --- a/cmd/secretkeyring.go +++ /dev/null @@ -1,57 +0,0 @@ -package cmd - -import ( - "fmt" - - "github.com/spf13/cobra" - keyring "github.com/zalando/go-keyring" -) - -var keyringCmd = &cobra.Command{ - Use: "keyring", - Args: cobra.NoArgs, - Short: "Interact with keyring", -} - -type keyringCmdConfig struct { - service string - user string - password string -} - -type keyringKey struct { - service string - user string -} - -var keyringCache = make(map[keyringKey]string) - -func init() { - secretCmd.AddCommand(keyringCmd) - - persistentFlags := keyringCmd.PersistentFlags() - - persistentFlags.StringVar(&config.keyring.service, "service", "", "service") - panicOnError(keyringCmd.MarkPersistentFlagRequired("service")) - - persistentFlags.StringVar(&config.keyring.user, "user", "", "user") - panicOnError(keyringCmd.MarkPersistentFlagRequired("user")) - - config.addTemplateFunc("keyring", config.keyringFunc) -} - -func (*Config) keyringFunc(service, user string) string { - key := keyringKey{ - service: service, - user: user, - } - if password, ok := keyringCache[key]; ok { - return password - } - password, err := keyring.Get(service, user) - if err != nil { - panic(fmt.Errorf("%q %q: %w", service, user, err)) - } - keyringCache[key] = password - return password -} diff --git a/cmd/secretkeyringget.go b/cmd/secretkeyringget.go deleted file mode 100644 index 041ab7d53a7..00000000000 --- a/cmd/secretkeyringget.go +++ /dev/null @@ -1,29 +0,0 @@ -package cmd - -import ( - "fmt" - - "github.com/spf13/cobra" - keyring "github.com/zalando/go-keyring" -) - -var keyringGetCmd = &cobra.Command{ - Use: "get", - Args: cobra.NoArgs, - Short: "Get a password from keyring", - PreRunE: config.ensureNoError, - RunE: config.runKeyringGetCmd, -} - -func init() { - keyringCmd.AddCommand(keyringGetCmd) -} - -func (c *Config) runKeyringGetCmd(cmd *cobra.Command, args []string) error { - password, err := keyring.Get(c.keyring.service, c.keyring.user) - if err != nil { - return err - } - fmt.Println(password) - return nil -} diff --git a/cmd/secretkeyringset.go b/cmd/secretkeyringset.go deleted file mode 100644 index 2c5ca5a3dcb..00000000000 --- a/cmd/secretkeyringset.go +++ /dev/null @@ -1,38 +0,0 @@ -package cmd - -import ( - "fmt" - "os" - - "github.com/spf13/cobra" - keyring "github.com/zalando/go-keyring" - "golang.org/x/crypto/ssh/terminal" -) - -var keyringSetCmd = &cobra.Command{ - Use: "set", - Args: cobra.NoArgs, - Short: "Set a password in keyring", - PreRunE: config.ensureNoError, - RunE: config.runKeyringSetCmd, -} - -func init() { - keyringCmd.AddCommand(keyringSetCmd) - - persistentFlags := keyringSetCmd.PersistentFlags() - persistentFlags.StringVar(&config.keyring.password, "password", "", "password") -} - -func (c *Config) runKeyringSetCmd(cmd *cobra.Command, args []string) error { - passwordString := c.keyring.password - if passwordString == "" { - fmt.Print("Password: ") - password, err := terminal.ReadPassword(int(os.Stdin.Fd())) - if err != nil { - return err - } - passwordString = string(password) - } - return keyring.Set(c.keyring.service, c.keyring.user, passwordString) -} diff --git a/completions/chezmoi-completion.bash b/completions/chezmoi-completion.bash index 1af62670f10..08316a01ff7 100644 --- a/completions/chezmoi-completion.bash +++ b/completions/chezmoi-completion.bash @@ -1573,150 +1573,6 @@ _chezmoi_secret_keepassxc() noun_aliases=() } -_chezmoi_secret_keyring_get() -{ - last_command="chezmoi_secret_keyring_get" - - command_aliases=() - - commands=() - - flags=() - two_word_flags=() - local_nonpersistent_flags=() - flags_with_completion=() - flags_completion=() - - flags+=("--color=") - two_word_flags+=("--color") - flags+=("--config=") - two_word_flags+=("--config") - flags_with_completion+=("--config") - flags_completion+=("_filedir") - two_word_flags+=("-c") - flags_with_completion+=("-c") - flags_completion+=("_filedir") - flags+=("--debug") - flags+=("--destination=") - two_word_flags+=("--destination") - two_word_flags+=("-D") - flags+=("--dry-run") - flags+=("-n") - flags+=("--follow") - flags+=("--remove") - flags+=("--service=") - two_word_flags+=("--service") - flags+=("--source=") - two_word_flags+=("--source") - two_word_flags+=("-S") - flags+=("--user=") - two_word_flags+=("--user") - flags+=("--verbose") - flags+=("-v") - - must_have_one_flag=() - must_have_one_noun=() - noun_aliases=() -} - -_chezmoi_secret_keyring_set() -{ - last_command="chezmoi_secret_keyring_set" - - command_aliases=() - - commands=() - - flags=() - two_word_flags=() - local_nonpersistent_flags=() - flags_with_completion=() - flags_completion=() - - flags+=("--password=") - two_word_flags+=("--password") - flags+=("--color=") - two_word_flags+=("--color") - flags+=("--config=") - two_word_flags+=("--config") - flags_with_completion+=("--config") - flags_completion+=("_filedir") - two_word_flags+=("-c") - flags_with_completion+=("-c") - flags_completion+=("_filedir") - flags+=("--debug") - flags+=("--destination=") - two_word_flags+=("--destination") - two_word_flags+=("-D") - flags+=("--dry-run") - flags+=("-n") - flags+=("--follow") - flags+=("--remove") - flags+=("--service=") - two_word_flags+=("--service") - flags+=("--source=") - two_word_flags+=("--source") - two_word_flags+=("-S") - flags+=("--user=") - two_word_flags+=("--user") - flags+=("--verbose") - flags+=("-v") - - must_have_one_flag=() - must_have_one_noun=() - noun_aliases=() -} - -_chezmoi_secret_keyring() -{ - last_command="chezmoi_secret_keyring" - - command_aliases=() - - commands=() - commands+=("get") - commands+=("set") - - flags=() - two_word_flags=() - local_nonpersistent_flags=() - flags_with_completion=() - flags_completion=() - - flags+=("--service=") - two_word_flags+=("--service") - flags+=("--user=") - two_word_flags+=("--user") - flags+=("--color=") - two_word_flags+=("--color") - flags+=("--config=") - two_word_flags+=("--config") - flags_with_completion+=("--config") - flags_completion+=("_filedir") - two_word_flags+=("-c") - flags_with_completion+=("-c") - flags_completion+=("_filedir") - flags+=("--debug") - flags+=("--destination=") - two_word_flags+=("--destination") - two_word_flags+=("-D") - flags+=("--dry-run") - flags+=("-n") - flags+=("--follow") - flags+=("--remove") - flags+=("--source=") - two_word_flags+=("--source") - two_word_flags+=("-S") - flags+=("--verbose") - flags+=("-v") - - must_have_one_flag=() - must_have_one_flag+=("--service=") - must_have_one_flag+=("--user=") - must_have_one_noun=() - noun_aliases=() -} - _chezmoi_secret_lastpass() { last_command="chezmoi_secret_lastpass" @@ -1896,7 +1752,6 @@ _chezmoi_secret() commands+=("generic") commands+=("gopass") commands+=("keepassxc") - commands+=("keyring") commands+=("lastpass") commands+=("onepassword") commands+=("pass") diff --git a/completions/chezmoi.zsh b/completions/chezmoi.zsh index ad6e5ce6e75..8d64419e7de 100644 --- a/completions/chezmoi.zsh +++ b/completions/chezmoi.zsh @@ -618,7 +618,6 @@ function _chezmoi_secret { "generic:Execute a generic secret command" "gopass:Execute the gopass CLI" "keepassxc:Execute the KeePassXC CLI (keepassxc-cli)" - "keyring:Interact with keyring" "lastpass:Execute the LastPass CLI (lpass)" "onepassword:Execute the 1Password CLI (op)" "pass:Execute the pass CLI" @@ -641,9 +640,6 @@ function _chezmoi_secret { keepassxc) _chezmoi_secret_keepassxc ;; - keyring) - _chezmoi_secret_keyring - ;; lastpass) _chezmoi_secret_lastpass ;; @@ -711,76 +707,6 @@ function _chezmoi_secret_keepassxc { '(-v --verbose)'{-v,--verbose}'[verbose]' } - -function _chezmoi_secret_keyring { - local -a commands - - _arguments -C \ - '--service[service]:' \ - '--user[user]:' \ - '--color[colorize diffs]:' \ - '(-c --config)'{-c,--config}'[config file]:filename:_files' \ - '--debug[write debug logs]' \ - '(-D --destination)'{-D,--destination}'[destination directory]:filename:_files -g "-(/)"' \ - '(-n --dry-run)'{-n,--dry-run}'[dry run]' \ - '--follow[follow symlinks]' \ - '--remove[remove targets]' \ - '(-S --source)'{-S,--source}'[source directory]:filename:_files -g "-(/)"' \ - '(-v --verbose)'{-v,--verbose}'[verbose]' \ - "1: :->cmnds" \ - "*::arg:->args" - - case $state in - cmnds) - commands=( - "get:Get a password from keyring" - "set:Set a password in keyring" - ) - _describe "command" commands - ;; - esac - - case "$words[1]" in - get) - _chezmoi_secret_keyring_get - ;; - set) - _chezmoi_secret_keyring_set - ;; - esac -} - -function _chezmoi_secret_keyring_get { - _arguments \ - '--color[colorize diffs]:' \ - '(-c --config)'{-c,--config}'[config file]:filename:_files' \ - '--debug[write debug logs]' \ - '(-D --destination)'{-D,--destination}'[destination directory]:filename:_files -g "-(/)"' \ - '(-n --dry-run)'{-n,--dry-run}'[dry run]' \ - '--follow[follow symlinks]' \ - '--remove[remove targets]' \ - '--service[service]:' \ - '(-S --source)'{-S,--source}'[source directory]:filename:_files -g "-(/)"' \ - '--user[user]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose]' -} - -function _chezmoi_secret_keyring_set { - _arguments \ - '--password[password]:' \ - '--color[colorize diffs]:' \ - '(-c --config)'{-c,--config}'[config file]:filename:_files' \ - '--debug[write debug logs]' \ - '(-D --destination)'{-D,--destination}'[destination directory]:filename:_files -g "-(/)"' \ - '(-n --dry-run)'{-n,--dry-run}'[dry run]' \ - '--follow[follow symlinks]' \ - '--remove[remove targets]' \ - '--service[service]:' \ - '(-S --source)'{-S,--source}'[source directory]:filename:_files -g "-(/)"' \ - '--user[user]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose]' -} - function _chezmoi_secret_lastpass { _arguments \ '--color[colorize diffs]:' \ diff --git a/docs/HOWTO.md b/docs/HOWTO.md index 5d4fcd25398..144559704c5 100644 --- a/docs/HOWTO.md +++ b/docs/HOWTO.md @@ -17,7 +17,6 @@ * [Use gopass to keep your secrets](#use-gopass-to-keep-your-secrets) * [Use gpg to keep your secrets](#use-gpg-to-keep-your-secrets) * [Use KeePassXC to keep your secrets](#use-keepassxc-to-keep-your-secrets) - * [Use a keyring to keep your secrets](#use-a-keyring-to-keep-your-secrets) * [Use LastPass to keep your secrets](#use-lastpass-to-keep-your-secrets) * [Use 1Password to keep your secrets](#use-1password-to-keep-your-secrets) * [Use pass to keep your secrets](#use-pass-to-keep-your-secrets) @@ -514,35 +513,6 @@ called `private-key`, its value is available as: {{ keepassxcAttribute "SSH Key" "private-key" }} -### Use a keyring to keep your secrets - -chezmoi includes support for Keychain (on macOS), GNOME Keyring (on Linux), and -Windows Credentials Manager (on Windows) via the -[`zalando/go-keyring`](https://github.com/zalando/go-keyring) library. - -Set passwords with: - - $ chezmoi keyring set --service= --user= - Password: xxxxxxxx - -The password can then be used in templates using the `keyring` function which -takes the service and user as arguments. - -For example, save a GitHub access token in keyring with: - - $ chezmoi keyring set --service=github --user= - Password: xxxxxxxx - -and then include it in your `~/.gitconfig` file with: - - [github] - user = "{{ .github.user }}" - token = "{{ keyring "github" .github.user }}" - -You can query the keyring from the command line: - - chezmoi keyring get --service=github --user= - ### Use LastPass to keep your secrets chezmoi includes support for [LastPass](https://lastpass.com) using the diff --git a/docs/REFERENCE.md b/docs/REFERENCE.md index efb6a48a977..9ed6d8cd3fa 100644 --- a/docs/REFERENCE.md +++ b/docs/REFERENCE.md @@ -73,7 +73,6 @@ Manage your dotfiles securely across multiple machines. * [`joinPath` *elements*](#joinpath-elements) * [`keepassxc` *entry*](#keepassxc-entry) * [`keepassxcAttribute` *entry* *attribute*](#keepassxcattribute-entry-attribute) - * [`keyring` *service* *user*](#keyring-service-user) * [`lastpass` *id*](#lastpass-id) * [`lastpassRaw` *id*](#lastpassraw-id) * [`lookPath` *file*](#lookpath-file) @@ -816,8 +815,6 @@ To get a full list of available commands run: #### `secret` examples chezmoi secret bitwarden list items - chezmoi secret keyring set --service service --user user - chezmoi secret keyring get --service service --user user chezmoi secret lastpass ls chezmoi secret lastpass -- show --format=json id chezmoi secret onepassword list items @@ -1043,22 +1040,6 @@ prompting, password storage, and result caching. {{ keepassxcAttribute "SSH Key" "private-key" }} -### `keyring` *service* *user* - -`keyring` retrieves the password associated with *service* and *user* from the -user's keyring. - -| OS | Keyring | -| ----- | ------------- | -| macOS | Keychain | -| Linux | GNOME Keyring | - -#### `keyring` examples - - [github] - user = "{{ .github.user }}" - token = "{{ keyring "github" .github.user }}" - ### `lastpass` *id* `lastpass` returns structured data from [LastPass](https://lastpass.com) using diff --git a/go.mod b/go.mod index 3b04d37717e..1017dbe8e5c 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,6 @@ require ( github.com/bmatcuk/doublestar v1.3.2 github.com/charmbracelet/glamour v0.2.0 github.com/coreos/go-semver v0.3.0 - github.com/danieljoos/wincred v1.1.0 // indirect github.com/fsnotify/fsnotify v1.4.9 // indirect github.com/go-git/go-git/v5 v5.1.0 github.com/golang/protobuf v1.4.2 // indirect @@ -34,14 +33,12 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.7.1 - github.com/stretchr/objx v0.2.0 // indirect github.com/stretchr/testify v1.6.1 github.com/twpayne/go-shell v0.3.0 github.com/twpayne/go-vfs v1.7.0 github.com/twpayne/go-vfsafero v1.0.0 github.com/twpayne/go-xdg/v3 v3.1.0 github.com/yuin/goldmark v1.2.1 // indirect - github.com/zalando/go-keyring v0.1.0 go.etcd.io/bbolt v1.3.5 golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a golang.org/x/net v0.0.0-20200822124328-c89045814202 // indirect diff --git a/go.sum b/go.sum index dfb96ef0bb1..5596315072c 100644 --- a/go.sum +++ b/go.sum @@ -68,10 +68,6 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/danieljoos/wincred v1.0.2 h1:zf4bhty2iLuwgjgpraD2E9UbvO+fe54XXGJbOwe23fU= -github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U= -github.com/danieljoos/wincred v1.1.0 h1:3RNcEpBg4IhIChZdFRSdlQt1QjCp1sMAPIrOnm7Yf8g= -github.com/danieljoos/wincred v1.1.0/go.mod h1:XYlo+eRTsVA9aHGp7NGjFkPla4m+DCL7hqDjlFjiygg= github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 h1:y5HC9v93H5EPKqaS1UYVg1uYah5Xf51mBfIoWehClUQ= github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -105,8 +101,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/godbus/dbus v4.1.0+incompatible h1:WqqLRTsQic3apZUK9qC5sGNfXthmPXzUZ7nQPrNITa4= -github.com/godbus/dbus v4.1.0+incompatible/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -330,16 +324,12 @@ github.com/spf13/viper v1.7.1 h1:pM5oEahlgWv/WnHXpgbKz7iLIxRf65tye2Ci+XFK5sk= github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= @@ -365,8 +355,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yuin/goldmark v1.2.0/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1 h1:ruQGxdhGHe7FWOJPT0mKs5+pD2Xs1Bm/kdGlHO04FmM= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/zalando/go-keyring v0.1.0 h1:ffq972Aoa4iHNzBlUHgK5Y+k8+r/8GvcGd80/OFZb/k= -github.com/zalando/go-keyring v0.1.0/go.mod h1:RaxNwUITJaHVdQ0VC7pELPZ3tOWn13nr0gZMZEhpVU0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= @@ -461,8 +449,6 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200413165638-669c56c373c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200821140526-fda516888d29 h1:mNuhGagCf3lDDm5C0376C/sxh6V7fy9WbdEu/YDNA04= -golang.org/x/sys v0.0.0-20200821140526-fda516888d29/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200828194041-157a740278f4 h1:kCCpuwSAoYJPkNc6x0xT9yTtV4oKtARo4RGBQWOfg9E= golang.org/x/sys v0.0.0-20200828194041-157a740278f4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=