Description of feature
#413 documents the contract for wrapping docket from ansible-dokku, and the dokku_git_sync module is the only one of the 27 with no docket task at all. A wrapper cannot delegate it today.
The module targets the commercial dokku-git-sync plugin: it reads dokku --quiet git-sync:report <app> and writes dokku --quiet git-sync:set <app> remote <url>, or dokku --quiet git-sync:set <app> remote with no value to clear it. That is the shape of every *_property task docket already has, so the implementation is likely validatePropertyInput / planProperty over a git-sync key map with a single remote key rather than anything new.
The naming needs care. docket's existing dokku_git_sync is core git:sync and corresponds to the ansible-dokku module named dokku_clone, not to the module named dokku_git_sync. The two are unrelated and the collision is already called out in docs/ansible-dokku.md, so a new task wants a distinct name - dokku_git_sync_property reads consistently with the rest of the property family and avoids compounding the confusion.
Two things to settle before implementing. The plugin is commercial, so the integration test job cannot install it the way tests/bats installs the free plugins, and the task may have to ship with unit coverage only. And the module has a latent bug on state: absent that docket should not reproduce: dokku_module_absent checks report["enabled"] while allowed_report_keys is ["remote"], so the key is never populated and the call raises KeyError.
Description of feature
#413 documents the contract for wrapping docket from
ansible-dokku, and thedokku_git_syncmodule is the only one of the 27 with no docket task at all. A wrapper cannot delegate it today.The module targets the commercial
dokku-git-syncplugin: it readsdokku --quiet git-sync:report <app>and writesdokku --quiet git-sync:set <app> remote <url>, ordokku --quiet git-sync:set <app> remotewith no value to clear it. That is the shape of every*_propertytask docket already has, so the implementation is likelyvalidatePropertyInput/planPropertyover agit-synckey map with a singleremotekey rather than anything new.The naming needs care. docket's existing
dokku_git_syncis coregit:syncand corresponds to theansible-dokkumodule nameddokku_clone, not to the module nameddokku_git_sync. The two are unrelated and the collision is already called out indocs/ansible-dokku.md, so a new task wants a distinct name -dokku_git_sync_propertyreads consistently with the rest of the property family and avoids compounding the confusion.Two things to settle before implementing. The plugin is commercial, so the integration test job cannot install it the way
tests/batsinstalls the free plugins, and the task may have to ship with unit coverage only. And the module has a latent bug onstate: absentthat docket should not reproduce:dokku_module_absentchecksreport["enabled"]whileallowed_report_keysis["remote"], so the key is never populated and the call raisesKeyError.