Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: matin/garth

v0.8.0 — Final Release

28 Mar 00:10
@matin matin
f99159a
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

Garth is deprecated and no longer maintained. Garmin changed their auth flow, breaking the mobile auth approach that Garth depends on. See the announcement for details. Anyone is welcome to fork Garth as a starting point for a new library.

Changes

  • Added DeprecationWarning on import garth
  • Disabled telemetry by default
  • Updated PyPI classifier to Development Status :: 7 - Inactive
  • Updated README and documentation with deprecation notices

For existing users

If you already have a saved session with a valid OAuth1 token, Garth may continue to work until that token expires (~1 year from when it was issued). New logins will not work.

Thank you to everyone who used and contributed to Garth. 🙏

Assets 2
Loading
parl0v reacted with heart emoji
1 person reacted

0.7.11

19 Mar 13:49
@matin matin
6c1b537
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

What's Changed

Full Changelog: 0.7.10...0.7.11

Contributors

tobias-goertz
Loading

0.7.10

19 Mar 03:55
@matin matin
9760c41
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.7.9...0.7.10

Contributors

tobias-goertz
Loading

0.7.9

18 Mar 11:42
@matin matin
a3bac03
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

Bug Fix

  • Switch all SSO constants from iOS to Android to match the consumer key from S3. The mismatch between iOS client identity and Android consumer key was the root cause of "Client app validation failed" 401 errors on preauthorized.

    • Client ID: GCM_IOS_DARKGCM_ANDROID_DARK
    • Service URL: gcm/iosgcm/android
    • Audience: GARMIN_CONNECT_MOBILE_IOS_DIGARMIN_CONNECT_MOBILE_ANDROID_DI

Full Changelog: 0.7.8...0.7.9

Loading

0.7.8

18 Mar 10:59
@matin matin
3571c55
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

Bug Fix

  • Revert browser headers on login POST and MFA verify — these are mobile API endpoints that expect GCM-iOS-* user agent, not browser UA. The 0.7.7 change caused 401 on login for all users.

Browser headers remain on page requests (sign-in, embed) only.

Full Changelog: 0.7.7...0.7.8

Loading

0.7.7

18 Mar 10:49
@matin matin
8d8c768
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

Bug Fix

  • Use consistent browser-like headers on all SSO endpoints (sign-in, login, MFA verify, embed). Cloudflare was blocking the login POST with 401 because it used a different User-Agent than the sign-in page that obtained the cf_clearance cookie.

Full Changelog: 0.7.6...0.7.7

Loading

0.7.6

18 Mar 10:42
@matin matin
205d339
This commit was signed with the committer’s verified signature.
matin matin
SSH Key Fingerprint: FBT7IR6Yy4c8sKegHT3Dw0IRwELHDV1o/BfHzONhbI4
Verified
Learn about vigilant mode.

Choose a tag to compare

Bug Fix

  • Invalidate OAuth1 token when exchange fails (429/403/any HTTP error) to prevent retry loops — subsequent API calls now fail fast instead of hammering the exchange endpoint on every request

Full Changelog: 0.7.5...0.7.6

Loading

0.7.5

18 Mar 10:31
@matin matin
2fa07d1
This commit was signed with the committer’s verified signature.
matin matin
SSH Key Fingerprint: FBT7IR6Yy4c8sKegHT3Dw0IRwELHDV1o/BfHzONhbI4
Verified
Learn about vigilant mode.

Choose a tag to compare

Bug Fix

  • Restore Android user agent (com.garmin.android.apps.connectmobile) for OAuth1-signed requests (preauthorized, exchange). In 0.7.0, this was accidentally changed to the iOS user agent, but the consumer key from S3 is from the Android app — Garmin validates that these match, causing "Client app validation failed" 401 errors.

This was the root cause of the intermittent 401s reported in #198.

Full Changelog: 0.7.4...0.7.5

Loading

0.7.4

18 Mar 10:23
@matin matin
c319358
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

Bug Fix

  • Send browser-like headers (User-Agent, Sec-Fetch-*, Accept) on SSO web page requests to avoid Cloudflare bot challenges that returned 403
  • Make /portal/sso/embed step best-effort — if Cloudflare still challenges, login proceeds without the LB cookie rather than failing

Full Changelog: 0.7.3...0.7.4

Loading

0.7.3

18 Mar 10:05
@matin matin
868af84
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

Bug Fix

  • Fix intermittent 401 "Client app validation failed" on login by adding the missing /portal/sso/embed step and copying cookies (including the Cloudflare LB cookie) from the parent session to the OAuth1 session (#209)
  • Fix CI: disable telemetry before importing garth in tests to prevent logfire background requests from interfering with VCR cassette matching

Thanks to @NiklasCa and @semicolon-spec for reporting and testing.

Full Changelog: 0.7.2...0.7.3

Contributors

NiklasCa and semicolon-spec
Loading
Previous 1 3 4 5 6 7
Previous

AltStyle によって変換されたページ (->オリジナル) /