资讯详情

资讯详情

用 Awesome Copilot 的 Release Notes Showcase 插件撰写可发布级 Release Notes:安装、数据模型与邮件导出全解析

用 Awesome Copilot 的 Release Notes Showcase 插件撰写可发布级 Release Notes安装、数据模型与邮件导出全解析【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot在 GitHub Copilot 的扩展生态中Awesome Copilot仓库GitHub_Trending/aw/awesome-copilot汇聚了大量社区贡献的 instructions、agents、skills 与配置。其中Release Notes Showcase是一个以 Copilot 扩展 Canvas画布形态交付的发布说明工作台它从 Git 标签、提交历史和 GitHub Pull Request / Issue 数据中自动生成发布说明草稿以可视化面板进行校对与精修并一键导出为邮件 HTML / 纯文本。阅读完本文你将掌握该插件的安装方式、完整的数据输入模型、发布草稿的生成链路以及如何通过 Canvas 上的 Agent Actionexport_email、get_release_snapshot把发布内容接入自动化发布流程。插件定位与安装插件本身由两部分构成位于 plugins/release-notes-showcase/plugin.json 的插件清单com.github.awesome-copilot扩展点声明以及位于 extensions/release-notes-showcase/ 的真实扩展实现。插件描述为“Compose and refine launch-ready release notes with contributor callouts and export-friendly output.”——即面向发布时刻、自带贡献者致谢板块、输出便于导出分发。在支持 Copilot 插件市场的环境中安装命令为copilot plugin install release-notes-showcaseawesome-copilot安装后Copilot 会话即可识别release-notes-showcase这个 Canvas 并提供给 Agent 调用。插件清单中的关键词changelog、contributor-callouts、email-export、launch-summary、product-updates、release-notes也反映了它的能力边界变更日志、贡献者点名、邮件导出、发布摘要。说明扩展实现依赖 github/copilot-sdk 中github/copilot-sdk: 1.0.1并基于 SDK 的 Canvas 机制注册源码入口为 extensions/release-notes-showcase/extension.mjs通过joinSession({ canvases: [releaseNotesShowcaseCanvas] })将画布挂载进会话。画布与数据模型一个可编程的 Release Notes 结构Canvas 的注册位于 extensions/release-notes-showcase/releaseNotesShowcase.mjs使用createCanvas({ id: release-notes-showcase, ... })定义。其inputSchemaL15-L101定义了整份发布说明的数据结构这是 Agent 向画布注入内容时唯一被允许的字段集合additionalProperties: false会拒绝未知字段字段类型说明releaseNamestring发布名称如仓库展示名versionstring版本号如v1.2.0或vNextreleaseDatestring发布日期taglinestring一句话卖点邮件头部与画布英雄区展示summarystring发布摘要同时作为默认 preheaderemailSubjectstring邮件主题emailPreheaderstring邮件预览文本heroStatsarray顶部指标卡元素{ label, value }均必填sectionsarray发布章节元素{ title, summary }必填可选kind、metric、bulletscontributorsarray贡献者名单name必填可选githubHandle、avatarUrl、profileUrl、area、summarycommunityThanksarray社区致谢的 GitHub 用户名列表字符串otherChangesarray其他零散变更text必填可选labelcallToActionobjectCTA 按钮label、url均必填其中sections.kind是一个受约束的枚举只能取三个值对应发布说明的三种内容基调kind: { type: string, enum: [feature, improvement, quality] }feature新能力与面向用户的功能画布中显示为蓝色渐变标记标签 “ Feature work”improvement稳定性、性能与可靠性改进紫色标签 “✨ Improvement”quality基础维护与代码质量收尾橙色标签 “️ Quality”。这三种 kind 也直接决定了邮件模板中章节徽章badge与配色的选取emailAccent见 L2304-L2323。发布数据从哪来Git 历史 GitHub API 双重数据源画布不会要求你手动录入所有内容。当它被打开时会先解析当前会话所在的仓库上下文再按“加载已发布 Tag”或“草拟未发布内容”两种模式生成草稿。整个数据装配逻辑集中在buildReleaseFromRepositoryL572-L618。仓库上下文解析resolveRepositoryContextL151-L173按优先级依次探测仓库根目录会话工作目录 → 会话元数据~/.copilot/session-state/sessionId/vscode.metadata.json或workspace.yaml中的cwd:→process.cwd()→ 扩展自身目录随后向上逐级查找含.git的目录findRepositoryRootL175-L194。拿到根目录后通过git config --get remote.origin.url读取远端地址L196-L206并用正则解析出owner/repo形式的仓库 slugparseRepositorySlugL208-L224同时支持 HTTPS 与 SSH 两种格式仓库名经humanizeRepoName转成展示名。两种草稿模式Tag 模式读取按创建时间倒序的标签列表git tag --sort-creatordateL295-L305选定某个 Tag 后取其上一个 Tag 作为比较基线用git log prev..tag拉取提交L572-L595。若没有上一个 Tag则退化为该 Tag 自身的历史。Unreleased 模式以最近 Tag 到HEADlatest..HEAD的提交为主体L597-L617同时调用 GitHub REST API 拉取自最近 Tag 日期以来合并的 PR 与关闭的 Issue——两者分别命中GET /repos/{owner}/{repo}/pulls?stateclosedsortupdatedper_page100和GET /repos/{owner}/{repo}/issues?stateclosedsinceisoper_page100L527-L570。请求会优先使用GITHUB_TOKEN或形如COPILOT_GH_ACCOUNT_github_2E_com_*的环境变量注入 Bearer 认证getGitHubTokenL484-L494。提交摘要的读取上限为 250 条git log --max-count250 --prettyformat:%s%x1f%anL312-L332并用分隔符把主题与作者分开随后cleanCommitSubject会剥掉 Conventional Commits 前缀如feat(scope):和结尾的 PR 编号(#123)得到干净的标题文本。提交自动归类每一条提交会经过classifyCommitL341-L352打上feature/improvement/quality标签主题以feat、feature开头或包含add、introduce、support、new→feature以fix、perf、refactor开头或包含improv、stabil、reliab、optim→improvement其余全部归入quality。随后toReleaseStateFromCommitsL354-L482把归好类的提交装配为结构化状态每个分类生成一个章节如 “Feature work shipped”“Improvements and fixes”“Quality and maintenance updates”取前 6 条作为 bullets合并的 PR 单独生成 “Merged pull requests” 章节贡献者按提交次数降序取前 6 名生成contributors卡片其余提交与关闭的 Issue 落到otherChanges。顶部指标heroStats默认汇总Commits / Merged PRs / Closed issues / Features四项数据。画布交互从草稿到定稿的可视化工作流Canvas 打开后会在本机启动一个监听127.0.0.1随机端口的 HTTP 服务startServerL1104-L1166并返回画布 URL。服务端暴露四个路由路由方法作用/GET渲染画布主页面renderHtml/actions/export-emailPOST按format返回邮件载荷/actions/release-optionsGET返回仓库 slug、Tag 列表与最新 Tag/actions/load-releasePOST按mode: tag \| unreleased重建草稿状态画布页面本身renderHtml由几个区块构成Hero 区发布名、版本徽章、tagline、summary、发布日期以及一个 “Top hit” 头条取首个章节标题Release dashboard右侧指标卡墙展示heroStats配色取自一套圆角调色板Release sourceTag 下拉选择器与两个按钮——“Load selected release”加载已发布 Tag与“Draft unreleased”草拟未发布内容Top hits按 kind 着色的章节卡片网格每条卡片展示徽章、指标与最多 2 条 bulletsAlso in this releaseotherChanges列表带彩色标签Contributors贡献者卡片头像、GitHub 昵称、贡献领域与摘要以及带头像的 Community thanks 徽章墙Email export实时预览 Subject / Preheader / CTA并提供 Copy / Download HTML 与纯文本按钮。两个 Agent Action把发布内容接进自动化流程除了页面上的按钮同一套能力还以 Copilot Agent Action 的形式暴露给模型L626-L668这意味着 Agent 可以在对话中直接调用它们把发布说明送入后续的自动化工作流export_email返回“可直接用于邮件发送”的载荷输入format为html/text/both默认bothschema 见 L103-L112。返回体包含subject、preheader、fileNameBase由slugify(${releaseName}-${version}-release-notes-email)生成见 L857-L876以及按需附带的html/text。若画布尚未打开会抛出canvas_state_missing错误提示先打开画布。get_release_snapshot返回一份精简快照title{releaseName} {version}、summary、各章节的title与kind、以及贡献者姓名列表——适合 Agent 快速读取当前发布故事的摘要用于会议总结、PR 描述或自动化报告中引用。邮件模板的工程细节buildEmailHtmlL878-L1056生成一封邮件客户端友好的 HTML顶部隐藏的 preheader、渐变头部、hero 指标四宫格、带徽章的章节列表、“Also in this release” 列表、“Contributors in the spotlight” 贡献者卡片与社区致谢链接、底部 CTA 圆角按钮所有动态文本都经过escapeHtmlL2334-L2341转义防止注入。buildEmailTextL1058-L1102则输出对应的纯文本版本二者内容结构完全对齐。源码结构与二次阅读指引理解这个插件最直接的方式是按以下顺序阅读实现文件extensions/release-notes-showcase/extension.mjs——扩展入口joinSession注册 Canvasextensions/release-notes-showcase/releaseNotesShowcase.mjs——核心实现约 2300 行包含数据 schema、Git/GitHub 数据装配、邮件生成与画布渲染四大部分plugins/release-notes-showcase/plugin.json——插件清单声明了名称、作者、关键词、logo 与扩展引用plugins/release-notes-showcase/README.md——插件层面的安装与说明文档。整体来看Release Notes Showcase 的典型使用闭环是打开画布 → 用 “Draft unreleased” 从仓库历史自动生成草稿 → 在画布上核对章节分类与贡献者名单 → 通过export_email或页面按钮导出 HTML/纯文本 → 将同一份载荷接入 Agent 驱动的发布邮件与更新公告流程。由于画布基于github/copilot-sdk的createCanvasAPI 构建且数据模型完全结构化它也可以作为参考模板帮助你基于仓库历史打造自己的发布工作流扩展。【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →