Files
gdm257andGitHub 9fc59f0c48 Support WebDAV destination (#359)
* feat(destination): add WebDAV destination

Add a stdlib-only WebDAV destination mirroring the s3/azureblob flow:
bare-clone into a temp dir, optional zip, upload via HTTP PUT with Basic
auth, and prune stale remote files via PROPFIND/DELETE.

- types: WebDAVRepo struct, Destination.WebDAV field, Count()
- webdav: new package (UploadDirToWebDAV, DeleteObjectsNotInRepo)
- main: dispatch loop on par with azureblob
- conf.example.yml + gickup_spec.json: document the new destination

* feat: auto retry


Auto retry network errors and some situations.

Servers that disable Depth: infinity (Sabre/DAV, Nextcloud and others
answer 400/403/501) failed listing and could not prune stale files.
Try infinity once, fall back to recursive PROPFIND walk on rejection.

* refactor: use gowebdav client

Classify retry errors and make backoff interruptible.
2026-08-18 19:54:39 +02:00
..
2026-08-18 19:54:39 +02:00