Release Notify Workflow
Post an existing GitHub release's notes to the project's Telegram channel topic.
Prerequisites
config.jsonexists in this skill directory withtoken,chat_id,message_thread_id(gitignored, never commit).ghCLI authenticated.uvinstalled (brew install uv/curl -LsSf https://astral.sh/uv/install.sh | sh). Script uses PEP 723 inline metadata;uvauto-installs deps.
Steps
- Resolve tag: If the user didn't give one, use the latest release:
gh release list --limit 1 --json tagName --jq '.[0].tagName'. - Run the script:
The script fetches the release viauv run scripts/send_release_to_telegram.py vX.Y.Zgh, splits the body into zh/en sections, strips PR collapsibles and the cache-clearing link, truncates to fit Telegram's 4096-char limit, and posts to the configuredchat_id+message_thread_id. - Verify: The script prints
ok: message_id=<id>on success. Report the message id.
Notes
- Message uses
parse_mode: MarkdownV2; all content is escaped (viamd_escape) to avoid parse errors on reserved chars_ * [ ] ( ) ~ \> # + - = | { } . !`. - Only the zh/en changelog sections are posted. PRs list and the cache-clearing discussion link are stripped to keep the message concise.
- For very long release bodies, zh and en are each truncated to ~half of the 3500-char body budget.