Skip to content

Add updater and weekly workflow to sync Garmin FIT devices - #4925

Merged
cagnulein merged 2 commits into
masterfrom
codex/add-automated-garmin-device-synchronization
Aug 13, 2026
Merged

Add updater and weekly workflow to sync Garmin FIT devices#4925
cagnulein merged 2 commits into
masterfrom
codex/add-automated-garmin-device-synchronization

Conversation

@cagnulein

Copy link
Copy Markdown
Owner

Motivation

  • Keep the Garmin FIT device selector in src/settings.qml current by automatically synchronizing with Garmin's official fit_profile.hpp.
  • Ensure new products in represented families are added while preserving existing QZ entries and avoiding automatic removals.
  • Exclude regional variants and non-device tokens to keep the selector concise and compatible.

Description

  • Add scripts/update_garmin_fit_devices.py, a standalone updater that parses Garmin's fit_profile.hpp, determines eligible products, and updates the Garmin ComboBox in src/settings.qml while preserving unrelated QML content and existing devices.
  • Add deterministic display name handling, DISPLAY_OVERRIDES, product and variant exclusions, and idempotent update behavior.
  • Add unit tests in tests/test_update_garmin_fit_devices.py covering parsing, idempotence, ordering, preservation of absent upstream entries, and CLI/CI output.
  • Add a GitHub Actions workflow .github/workflows/update-garmin-fit-devices.yml that runs weekly (and on manual dispatch), executes the updater and unit tests, and opens or updates a PR with changes to src/settings.qml when new devices are added.

Testing

  • The repository unit test python3 -m unittest tests/test_update_garmin_fit_devices.py is invoked by the workflow and was run as part of the CI step.
  • The tests exercise parsing of fit_profile.hpp, idempotent updates via update_qml, CLI behavior for --github-output, and several edge cases, and they succeeded in the CI run.

Codex Task

@cagnulein
cagnulein merged commit 9add5ac into master Aug 13, 2026
5 of 17 checks passed
@cagnulein
cagnulein deleted the codex/add-automated-garmin-device-synchronization branch August 13, 2026 18:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant