pe-st / garmin-connect-export

Download a copy of your Garmin Connect data, including stats and GPX tracks.
MIT License
376 stars 77 forks source link

BitWarden (password manager) #77

Closed bxsx closed 2 years ago

bxsx commented 2 years ago

Disclaimer

This PR has been enhanced several times. The obsolete description is crossed out.

NOTE: This PR is duplicated by #83. Please refer to #83 for further discussion.

Summary

This PR integrates garmin-connect-export with password managers. Currently supported managers:

A newly added option --passmanager PASSWORD_MANAGER enables integration for the selected manager.

This PR integrates garmin-connect-export with BitWarden by adding a new ~~executable gcexport-bw.sh option --bitwarden.~~

Pitch

Garmin Connect requires login and password for authentication. These credentials are passed to the app as a plain text via program arguments such as --username and --password. This can lead to potential leakage of credentials in the event of unsecured storage (like in plain text files).

This integration allows you to get the credentials directly from Password Manager and pass them to the application.

BitWarden is a free and open source password manager (similar to LastPass, KeyPass, KeyChain, 1Password, etc.).

Requirements

Usage

Use --passmanager PASSWORD_MANAGER to look up garmin.com item for credentials.

Use --bitwarden instead of --username and --password. It looks up garmin.com entry for credentials.

Examples

python gcexport.py --passmanager BitWarden

Notes

--passmanager option cannot be mixed with --username or --password.

gcexport-bw.sh can be backported to Powershell in the future, so it can be run natively on Windows.

bxsx commented 2 years ago

Notes

gcexport-bw.sh can be backported to Powershell in the future, so it can be run natively on Windows.

This PR is now updated to integrate BitWarden on any POSIX systems. It should now run on Linux, macOS, Windows.

External script gcexport-bw.sh has been replaced with the new --bitwarden option.

bxsx commented 2 years ago

@pe-st I rewrote the integration. Please see the updated PR description for more information.

PS. After merging #81, I will update the PR to meet the requirements of the new code style. Do you plan to merge open requests before v4.0.0 release?

bxsx commented 2 years ago

I'm closing this PR in favor of #83