feat(tb-lf): add share upload command#35
Merged
Merged
Conversation
Adds a new `tb-lf share` subcommand. Today only `upload` exists:
tb-lf share upload <file>...
--visibility private|unlisted (default: private)
--title "<title>" (optional)
--json (machine-readable output)
Reserves the `share` namespace for upcoming actions like `list`, `delete`,
and `show` (which will land alongside the matching DevPortal API endpoints).
## Implementation notes
- Enables `multipart` + `stream` features on workspace `reqwest`.
- Adds `DevPortalClient::post_multipart` which posts to the bare DevPortal
URL (not the `/spa_api/ai` API base) because Shares is cross-team
infrastructure that lives at `/spa_api/shares`.
- Stores `config.url` separately as `devportal_url` on the client.
- `mime_for_path` provides explicit Content-Type for common extensions —
DevPortal-side CSP injector only triggers on `text/html` / `application/xhtml+xml`,
so accurate MIME at upload time is what controls whether CSP is added.
## Drive-by fix
Replaced two pre-existing `3.14` literals in `types.rs` tests that
clippy 1.93 now flags as `approx_constant`. Per repo CLAUDE.md ("don't
waste time proving pre-existing — fix it").
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
Adds a
tb-lf share uploadcommand that posts files to the new DevPortal Shares API (productiveio/devportal#284). Lets us go from "I have an HTML report" to a short shareable URL with one command from the terminal.Reserves the `share` namespace for upcoming actions (`list`, `delete`, `show`) which will follow as DevPortal exposes the corresponding endpoints.
Implementation
Drive-by
Replaced two pre-existing `3.14` literals in `types.rs` tests that clippy 1.93 now flags as `approx_constant`. Per repo CLAUDE.md: don't waste time proving pre-existing — fix it.
Requires
Test plan
🤖 Generated with Claude Code