Update Live Tennis API plugin to v0.0.6 - #2834
Merged
Merged
Conversation
crazywoola
approved these changes
Aug 7, 2026
crazywoola
left a comment
Member
There was a problem hiding this comment.
✅ LGTM
Decision: Approve
Local Check Results
| Check | Status | Detail | Required action |
|---|---|---|---|
PR content language |
✅ Pass | PR title/body CJK ratio=0.0% (zh=0, en=4484, ignored_zh=0, allowed_zh<=0) | None. |
Project structure |
✅ Pass | All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes. | None. |
Manifest author |
✅ Pass | author is valid. | None. |
Icon validation |
✅ Pass | icon exists: _assets/icon.png | None. |
Version check |
✅ Pass | version 0.0.6 is available. | None. |
README language |
✅ Pass | README.md CJK ratio=0.0% (zh=0, en=5534, allowed_zh<=0) | None. |
PRIVACY.md |
✅ Pass | PRIVACY.md exists and is non-empty. | None. |
Dependency install |
✅ Pass | requirements installed successfully. | None. |
dify_plugin version |
✅ Pass | dify_plugin version 0.10.1 satisfies >= 0.9.0. | None. |
Install test |
✅ Pass | plugin install test passed. | None. |
Packaging test |
✅ Pass | packaging check passed. | None. |
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.
Plugin Submission
Plugin information
Submission type
What changed
Version update, 0.0.5 → 0.0.6. Additive — the six existing tools are
unchanged, so workflows built on the Marketplace 0.0.5 work unmodified.
following the same conventions as the existing six (prose + JSON output,
no tool ever raises, tier gates named in tool descriptions):
get_h2h(head-to-head),get_archive_matches/get_archive_players/get_archive_career(a 1968–2022 results archive),get_rankings(published ranking tables) and
get_match_statistics(in-play statistics).Endpoints above the free plan answer on lower plans with a normal
reason: "upgrade_required"result naming the plan — never an exception.juniorsvalue forget_matches'tourparameter (the API's toursare ATP, WTA, Challenger, ITF and juniors).
limit_per_dayand the absoluteresets_atinstant; its 24-hour abusethrottle is its own
reason: "abuse_throttled"withretry_at_epoch; anambiguous player-name fragment returns
reason: "ambiguous_name"with thecandidate list.
tool table).
Reconciliation note for reviewers. After #2808 (0.0.3) merged, 0.0.4 and
0.0.5 were pushed to this repo directly by a maintainer (dcf71cc, 46c71ea —
thank you): 0.0.4 was a version bump and 0.0.5 additionally dropped the
entertainmentmanifest tag. Both changes are folded into the sourcerepository, and this 0.0.6 is built on top of them — the
entertainmenttagstays gone.
Every tool is a
GET. The plugin has no write path of any kind.Risk level
Required checks
.envfiles,.gitdirectories, virtual environments, caches, logs, or IDE files.PRIVACY.mdor a hosted privacy policy, andmanifest.yamlreferences it.Security and privacy notes
Vendor disclosure. I am the operator of the Live Tennis API, the service
this plugin wraps, and the publisher of the
livetennisapiPyPI package itdepends on. This is a first-party integration, not a third-party wrapper.
Network destinations. One, fixed and documented:
https://api.livetennisapi.com/api/public/v1. It is a module constant inlivetennisapi_client.py, deliberately not exposed as a credential or atool parameter, so the destination cannot be redirected by a user, a workflow
or a model. No arbitrary URL fetching, proxying, crawling or webhook
forwarding.
Sensitive capabilities: none. No command or code execution, no shell, no
SQL, no database access, no SSH/SFTP, no filesystem operations, no browser
automation, no bundled binaries. Every tool issues a
GETand formats theresponse.
Credentials. A single
api_key(secret-input), sent in thex-api-keyheader to the one host above. It is never logged, never included in an error
message, and never returned in tool output. The plugin writes no files and
keeps no cache or state between invocations.
Input constraints. Unchanged in kind from the reviewed 0.0.2/0.0.3:
numeric parameters are coerced and clamped to the API's own ceilings, select
parameters are case-folded against fixed allow-lists with a safe fallback, and
name parameters are length-checked before any request leaves the plugin.
Requests carry a 30-second timeout.
Data returned is public professional-sport information: player names,
nationalities, rankings, handedness, dates of birth, match results, statistics
and scores. No Dify user identity, conversation content, prompt or workflow
variable is sent anywhere. See
PRIVACY.md.Dependencies: two lines.
dify_plugin>=0.9.0andlivetennisapi>=1.3.0,both from PyPI.
Reviewer notes
drives all twelve tools through the plugin's real
_invokeentrypointsagainst a local HTTP stub: no key, success, 403 tier wall, 401, 404, 429
and unusable parameters — nothing raises — plus value checks that the
daily-cap
resets_at, the abuse throttle and ambiguous-name candidates arerelayed, and a wire assertion that the key travels in
x-api-keywith noAuthorizationheader. Packaged and validated with thedifyCLI v0.6.5.The source repo now runs all of this in CI:
https://github.com/livetennisapi/livetennisapi-dify-plugin/actions.
Not re-verified on Dify Cloud for this release.
404forlivetennisapi/livetennisapi/0.0.6, so the pre-check version gate passes.🤖 Generated with Claude Code