当前位置: 首页 > news >正文

CANN/cannbot-skills GitCode PR标题生成


【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

name: gitcode-pr-handler description: 根据 GitCode PR 的代码变更,重新生成符合约定式提交规范的 PR 标题与符合仓库 PR 模板的 PR 描述(body),然后通过 GitCode API 写回 PR。当用户提供 PR 链接、要求"更新 PR / 生成标题 / 生成描述 / 改 PR 文案 / 重写 PR 标题描述"时触发此 skill。 license: MIT

GitCode PR 标题 / 描述生成

根据 GitCode PR 的代码变更,重新生成 PR 标题(约定式提交)与 PR 描述(沿用仓库 PR 模板),并通过 API 写回 PR。


核心原则

内容必须来源于代码

  • PR 标题与描述必须基于 PR 实际代码变更重新生成——原标题/描述仅作为参考,不直接复用
  • 通过分析变更文件、diff 内容、commit 信息来总结改动;不要凭经验或假设编造
  • 没有代码依据的特性 / 平台 / 数据类型,不要写进 PR 描述

沿用仓库 PR 模板

PR 描述必须优先使用仓库 PR 模板(不同仓库格式不同),只填模板里的占位段。模板优先级:

  1. .gitcode/PULL_REQUEST_TEMPLATE.zh-CN.md
  2. .gitcode/PULL_REQUEST_TEMPLATE.md
  3. .github/PULL_REQUEST_TEMPLATE.md

仓库无任何模板时降级到本文档「内容生成规范 · 默认 PR 描述格式」。

不创建 Issue

本 skill 的写入面仅限 PR 标题与 PR body,不会调用 Issue API、不创建 Issue。如果 PR 描述里已经有"关联的Issue"段并填好了#issue_number,沿用即可;如果该段为空,留空(不要 fabricate#0#TBD)。

禁止创建测试内容

严禁向目标仓库发送测试 / 调试用 PR 评论。API 调用问题应通过本地构造 JSON 排查。

交互节奏:环境预检 + 终局确认,最多两次卡点

整个流程仅在两类时刻打断用户:

  1. Step 0 环境预检— token / git / curl / /tmp 等缺失时 AskUserQuestion 询问
  2. Step 7 提交确认— 完整的新标题、新描述生成后,一次AskUserQuestion 询问是否提交

中间过程的所有"判断"——模板选择、标题草稿、描述草稿——不要用 AskUserQuestion 打断;按下文「自动决策」执行并在文本里说明"我做了什么、为什么"。

AskUserQuestion 一次只问一个。

自动决策

决策点做法
PR 模板选择按上文优先级选定唯一模板;多个候选时按优先级取首个,文本说明所选
标题 / 描述草稿直接生成;用户在 Step 7 看到完整内容统一确认

工作流程

Step 0:环境预检(必经)

详见 gitcode-toolkit/references/env-check.md

token / git / curl / python3 / /tmp 任一缺失 → AskUserQuestion 询问(一次只问一个);全部通过则输出预检报告进入 Step 1。

Step 1-6:解析与上下文获取

  1. 解析 PR 链接→ 提取 owner / repo / pr_number(详见 gitcode-toolkit/references/url-parsing.md)
  2. 获取 PR 详情→ 调用 API 取 title / body / head.ref / base.ref(详见 gitcode-toolkit/references/gitcode-api.md);原标题/描述只作参考
  3. 克隆代码/tmp/gitcode-pr-handler_${owner}_${repo}_${ts}(详见 gitcode-toolkit/references/clone-and-checkout.md)
  4. 展示变更列表git diff --numstat+--name-status表格展示,直接进入下一步(不询问)
  5. 查找 PR 模板→ 按上文「沿用仓库 PR 模板」优先级独立检查每个路径(不要用&&链式连接,否则前一个不存在时后续不会被检查):
# 逐个检查,任一存在即使用 ls .gitcode/PULL_REQUEST_TEMPLATE.zh-CN.md 2>/dev/null ls .gitcode/PULL_REQUEST_TEMPLATE.md 2>/dev/null ls .github/PULL_REQUEST_TEMPLATE.md 2>/dev/null

本地克隆失败时通过 API 获取:

curl -s "https://api.gitcode.com/api/v5/repos/${owner}/${repo}/contents/.gitcode/PULL_REQUEST_TEMPLATE.zh-CN.md?access_token=${GITCODE_TOKEN}"

文本说明"已识别 PR 模板:…,使用模板填充描述"或"未发现 PR 模板,使用默认格式"。

  1. 生成新标题与新描述→ 见下「内容生成规范」

Step 7:最终提交确认(流程中唯一的提交确认)

完成生成后统一展示:

即将执行: PR #${pr_number} 旧标题 → 新标题 旧描述 → 新描述(diff 摘要或全文)

调用唯一一次AskUserQuestion:

问题: 以上内容是否提交到 GitCode? 选项: - 全部按此提交 (Recommended) - 取消,保留本地草稿

确认后执行PATCHPR title / body(详见 gitcode-toolkit/references/gitcode-api.md),随后GET回查 PR 验证写入成功(PATCH 200 不代表写入成功)。


内容生成规范

PR 标题格式(约定式提交)

类型前缀示例
新功能feat:feat: 添加用户登录功能
Bug 修复fix:fix: 修复登录验证逻辑
文档docs:docs: 更新安装文档
重构refactor:refactor: 重构用户模块
测试test:test: 添加登录单元测试
性能perf:perf: 优化批量插入路径

类型从主要变更性质判定;同时含多类时取占比最大的一类,混合改动可加 scope(feat(login): ...)。

PR 描述(沿用仓库模板)

如果仓库有 PR 模板:

  • 沿用模板的原章节标题,仅替换<!-- ... -->占位
  • 不删减、不简化模板字段;模板要求的内容必须从代码里找到依据再填
  • 不增加模板没有的章节

默认 PR 描述格式(仅在仓库无任何模板时使用)

## 描述 [详细描述改动的原因和所采取的方法] ### 改动原因 [描述为什么要做这个改动] ### 改动方法 [描述具体的实现方式] ## 测试 [描述进行了哪些测试] ## 类型标签 - [ ] Bug 修复 - [ ] 新特性 - [ ] 文档更新 ## 关联的Issue - #${issue_number}(已有则填,无则留空——不要 fabricate)

API / Token / 错误处理

GitCode API、Token、HTTP 状态码错误处理统一详见:

  • gitcode-toolkit/references/gitcode-api.md
  • gitcode-toolkit/references/env-check.md / token-config.md

本 skill 的本地约束:

  • 调试 API 参数时,先在本地构造 JSON 验证格式,禁止向目标仓库发送测试请求
  • PATCH 返回 200 不代表写入成功——必须 GET 回查 PR 验证 title / body 实际生效

参考文档

  • gitcode-toolkit/SKILL.md — Git 克隆/分支检出、merge-base、diff/log 等共享操作
  • gitcode-toolkit/references/gitcode-api.md — GitCode PR API 详细文档

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/863657/

相关文章:

  • 天津“机器人军团”集体冲刺 IPO,百年工业重镇凭硬核科技迈向智能时代新高峰
  • 智造焕新:解锁 2026 六大激光清洗机品牌核心竞争力 - 品牌评测官
  • 3分钟掌握Unity游戏AI自动翻译:XUnity.AutoTranslator终极指南
  • 成都黄金回收哪家强 长悦高价回收让您省心又安心 优选长悦 - 专业黄金回收
  • 如何快速配置碧蓝航线自动化脚本:终极完整指南
  • 余生黄金回收银川总店测评|兴庆区全街道覆盖 黄金回收真实到店实测 - 润富黄金珠宝行
  • 抖音批量下载终极指南:基于Python的高效无水印下载技术解析
  • gorm sqlexpression如何公用
  • 2026清流县黄金回收白银回收铂金回收店铺实力排行榜TOP5;K金+金条+银条+首饰回收靠谱门店及联系方式推荐 - 前途无量YY
  • Sobelow进阶使用:多格式输出与集成开发环境配置
  • Lavalink高级过滤器使用教程:音效处理与实时音频增强终极指南
  • 智能批改工具的效能比较与专业引领——基于“题小小”与通用大模型的作文教学实证分析 - 博客万
  • 洗发水十大品牌排行榜:以蓬松效果闻名的洗发水品牌 - 速递信息
  • E-Hentai Downloader:3分钟掌握漫画批量下载的终极免费方案
  • Topit:Mac窗口置顶工具终极指南 - 三步告别繁琐窗口切换
  • LangChain-Chatchat 开发与应用(七) 自定义文档解析器-搞定那些不听话的PDF
  • 2026年普通家庭选白色十字门冰箱,大白405成首选之选! - 品牌企业推荐师(官方)
  • 3步掌握抖音批量下载:免费高效的抖音下载器完整指南
  • 五寨县黄金回收哪家强?铭润稳居第一 - 亦辰小黄鸭
  • 在不同网络环境下体验taotoken api服务的连接成功率
  • 余生黄金回收金凤区全攻略|6街道2镇全覆盖 黄金回收哪家更靠谱 - 润富黄金珠宝行
  • 0x.Tools高级技巧:如何利用动态查询系统进行多维性能分析
  • 蘑菇博客持续集成实践:Github Actions自动化部署完整流程
  • 武宁县黄金回收哪家强?铭润稳居第一 - 亦辰小黄鸭
  • 可观测体系最佳实践:Prometheus+Grafana+Loki+Jaeger
  • 如何高效下载抖音无水印视频:douyin-downloader的5个核心技巧
  • 2026年天津黄金回收平台,福昌夏凭实力脱颖而出 - 黄金上门回收
  • QKeyMapper:Windows跨设备按键映射解决方案,提升游戏与办公操作效率
  • CANN asc-devkit int4x2转half函数
  • 终极指南:如何用Python脚本免费实现百度网盘高速下载