Repository navigation
Support recursive shared-link subfolder downloads - #403
Merged
AndreyVMarkelov merged 1 commit intoNov 12, 2026
Merged
AndreyVMarkelov merged 1 commit into
AndreyVMarkelov merged 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Allow
share-link download --path /2027/Logoset --recursiveto download just the selected folder. Previously this flag combination was rejected. Downloads now resolve the selected item's metadata, keep API paths relative to the original shared-link root, and write local paths relative to the selected folder. An existing destination receives aLogosetsubdirectory; a new destination is used directly.Reuses the existing traversal, pagination, password handling, retries, and temporary-file downloads. Selected files work with or without
--recursive; folder and recursive stdout restrictions remain enforced. Path validation rejects traversal before normalization, errors retain their causes and JSON v1-compatible details, and failures emit no successful partial JSON. Updates command/help examples, generated documentation, and regression tests without changing JSON v1 schemas.Validation:
go fmt ./...,go vet ./...,go test ./...,go test -race ./cmd/..., andgo build ./...passed.share-link ls, password/file/prompt inputs, incorrect passwords, invalid inputs, cancellation, revoked links, and controlled partial local failures. Disposable shared links were revoked and remote fixtures deleted.Live pagination, separate-account/unmounted access, and Windows execution were not exercised; pagination/unmounted behavior has mock coverage and Windows checks were cross-compiled. The authenticated owner can access its password-protected link without a password, so missing-password rejection was not verified live. Network interruption/retry failures use deterministic regression tests.
Closes #394.