From ac7389e75fe1d2b44fe509c940876d705051c439 Mon Sep 17 00:00:00 2001 From: Gloridust Date: Sat, 13 Jun 2026 23:19:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(ci/telegram):=20=E5=8F=91=E5=B8=83?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E8=87=AA=E5=8A=A8=E7=BD=AE=E9=A1=B6=20+=20?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E4=B8=8A=E4=B8=80=E4=B8=AA=20release=20?= =?UTF-8?q?=E7=9A=84=E7=BD=AE=E9=A1=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit tg-notify.mjs:release/手动触发发完消息后,用 getChat 读群当前置顶(=上一个 release), pinChatMessage 置顶新消息(静音,避免二次提醒)、unpinChatMessage 取消旧的——无需持久化存储。 issue 通知不置顶;置顶失败(机器人非管理员/无置顶权限)仅跳过、不影响通知本身。 文档补充:需把机器人设为群管理员并开启「置顶消息」权限。 Co-Authored-By: Claude Opus 4.8 --- .github/scripts/tg-notify.mjs | Bin 5600 -> 7316 bytes doc/发布到GHCR.md | 6 ++++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/scripts/tg-notify.mjs b/.github/scripts/tg-notify.mjs index e86e84149cd9acadf84557fa22f14f4812924f2a..1f01568572c5cf7d4a5a91676ee0156e519e05de 100644 GIT binary patch delta 1820 zcma)7-*4Mg6qXQFTBTMXB}@V_ol0m)Sd~2>5OfMdsJTzmi&n0iiB04F zR&)6=y;(9EPt9VvRo~mPgjRVBQ4%JCOb!xR zWAjIT=pb>81vhdf2oYssT2P?5U8BoYp$9vxbhCY1Oe7>bsvb6Dxs#y+3FFa{he{I!Mcvvq~=|)Mb zR`vC5tiX6$G}hub=&g0FlG6)mL}O#MfFcn6-gR?h4fC@Mg1jL4Avh=b6)_^gtSFt8 z0$)may%Z(iyCpLJNx%b($Ts71DaDX-j5d=gAM{~^c!#Vu2MjFTUowj|TCls&Az#~D zLDDb<@3)^Z>H}e35S31kZKkomi@-KaiGeYgIDd8$VxBXdqqA7^B~g;%geivY8}~+u zJQv0*LXt>eYK9AC+-ol|5IfHr%A3}eM9RFkVcy@x%FX0HUCL_JjQ*skudbOle)=bo z!#_vIyFvf>-KeedxAErwG7{XaOO*N$VLePcUEv-9hEnIHT2QSS=TN{T3A zQ1lC|X=9*7=ZMXN7zFpo>`S7gzTte+Zz19eLa}s|!X#H=a<#|_j)dGUMnIcFK6#uTm(?IvSi3#gos%b_=WfL3gC421l`zM2 z*hif8^bmFNqoO#>T~8t|79KwmCSF#!70(;_4#t6D;3m+o>5imbFoqi~tI+Q}Vvye{ zmfIw6y5Q7NnydsKi-p*3dU*bo_qjKji6nOA{N#nt*l<{LPVfF~CK5(amKF(6@?s3)AStBZ~gUS-dD4q%R{sDC-WZ~$0(VD|`+&#^k< z92@NJR=;r`9{`A$IH^wCajhE98DhhK&0g5_6$ zKkgwYqC=+E6QIWhtp31j5Ca@5|1`MqGsAoj`Ep$5x_*%~N-JpeW^MxsVOrU57`L~u cdq?~k>EHuHIz9teuL9vYEV5(j1Lw#80vgh74*&oF delta 175 zcmbPY`9OO^I4^&3YF>&)NoqxjjzVsJO6uesUVCnkm~U!vabkMvyk6f_hI^zySc6{@)=he}z=6+jdzC=?XsCj%|jORdN((J%z-1e&x>N@H@U Gj6DDsM>kRc diff --git a/doc/发布到GHCR.md b/doc/发布到GHCR.md index 4ca01d7..3fd20a0 100644 --- a/doc/发布到GHCR.md +++ b/doc/发布到GHCR.md @@ -81,11 +81,11 @@ docker buildx build --platform linux/amd64,linux/arm64 \ ## Telegram 发布通知(可选,免服务器) -仓库内置 [.github/workflows/telegram-notify.yml](../.github/workflows/telegram-notify.yml):**新版本发布** / **新 issue** 时,通过 Telegram Bot 推送到群组。跑在 GitHub Actions 上,无需服务器;未配置则自动跳过。 +仓库内置 [.github/workflows/telegram-notify.yml](../.github/workflows/telegram-notify.yml) + [.github/scripts/tg-notify.mjs](../.github/scripts/tg-notify.mjs):**新版本发布** / **新 issue** 时,把内容(GitHub Markdown 渲染为 Telegram HTML)推送到群组。跑在 GitHub Actions 上,无需服务器;未配置则自动跳过。**发布通知还会自动置顶,并取消上一个 release 的置顶**(群里始终只置顶最新版本)。 一次性配置: -1. 把机器人(如 `@WechatOnCloudBot`)拉进目标 Telegram 群组;需要发言权限时设为管理员。 +1. 把机器人(如 `@WechatOnCloudBot`)拉进目标 Telegram 群组。**要让"自动置顶"生效,需把机器人设为群管理员并开启「置顶消息」权限**(缺权限时通知照发、仅置顶被跳过,不影响主流程)。 2. 取群组 chat id:bot 进群后在群里发条消息,浏览器打开 `https://api.telegram.org/bot/getUpdates`,找 `result[].message.chat.id`(群组通常是 `-100` 开头的负数)。 3. 仓库 **Settings → Secrets and variables → Actions**: - **Variables** 标签 → `TELEGRAM_CHAT_ID` = 上面的 chat id; @@ -93,6 +93,8 @@ docker buildx build --platform linux/amd64,linux/arm64 \ 之后每次「发布 Release / 新建 issue」都会自动推送。想关掉 issue 推送,删掉 workflow 里 `on:` 下的 `issues:` 即可。 +> **自动置顶原理**:发完新消息后,用 `getChat` 读出群当前置顶消息(即上一个 release),置顶新消息、再取消旧的——无需任何持久化存储。issue 通知不置顶。手动 **Run workflow** 也会置顶(发的是最新 release),可用来测试。 + --- ## Telegram 命令机器人(可选,免服务器,轮询版)