AI 提交助手

wescode 的 AI 提交助手帮助你自动生成高质量的 commit message、PR 描述和变更摘要,提升代码提交效率。

功能概览

能力说明
自动生成 commit message基于 diff 分析生成规范化提交信息
代码变更摘要用自然语言总结代码变更内容
PR 描述生成自动填充 Pull Request 模板
变更影响分析分析变更可能影响的模块和功能
规范检查确保提交信息符合项目规范

自动生成 Commit Message

使用方式

  1. 在 Chat 面板中:完成代码修改后,输入 /commit 或「帮我写 commit message」
  2. 通过快捷键:Ctrl+Shift+G(或自定义快捷键)打开 Git 面板后触发
  3. AI 会分析当前 staged 和 unstaged 的变更,生成规范化的提交信息

示例

用户:/commit

AI:基于当前变更生成 commit message:

  feat(auth): 添加 JWT refresh token 支持

  - 新增 RefreshToken 生成和验证逻辑
  - 添加 /api/auth/refresh 端点
  - 配置 refresh token 过期时间为 7 天
  - 更新 auth middleware 支持双 token 验证

  变更文件:
    M internal/auth/token.go
    A internal/auth/refresh.go
    M internal/handler/auth.go
    M internal/config/config.go

  是否使用此 message?[Y/n]

支持的 Commit 规范

规范说明
Conventional Commitstype(scope): description 格式
Angular 风格feat / fix / docs / refactor 等
Gitmoji使用 emoji 前缀(可选)
自定义模板在 .wescode/commit-template.md 中定义

配置提交规范

在 config.yaml 或项目 .wescode/config.yaml 中配置:

commit:
  style: conventional  # conventional | angular | gitmoji | custom
  language: zh-CN      # commit message 语言
  scope_required: true # 是否要求 scope
  max_subject_length: 72
  body_required: false

代码变更摘要

生成变更摘要

在完成一组修改后,可以让 AI 生成可读的变更摘要:

用户:总结一下我今天的修改

AI:今日变更摘要:

  📝 共修改 8 个文件,新增 245 行,删除 67 行

  主要变更:
  1. 用户认证模块重构
     - 将 session-based 认证迁移到 JWT
     - 新增 refresh token 机制
     - 修复 token 过期后的静默刷新

  2. 订单 API 新增批量查询
     - 添加 GET /api/orders/batch 端点
     - 支持按日期范围和状态筛选
     - 添加分页参数验证

  3. 数据库迁移
     - 新增 refresh_tokens 表
     - 为 orders 表添加复合索引

按时间范围生成

用户:总结最近一周的变更
用户:总结这个分支上的所有修改
用户:对比 main 分支的变更

PR 描述生成

自动填充 PR 模板

当你准备提交 Pull Request 时,AI 可以自动生成完整的 PR 描述:

用户:帮我生成 PR 描述

AI:

  ## 标题
  feat: 实现 JWT 认证和 refresh token 机制

  ## 概述
  将用户认证从 session-based 迁移到 JWT,新增 refresh token
  支持,提升 API 的无状态性和可扩展性。

  ## 变更内容
  - 新增 JWT access token 生成和验证(15分钟过期)
  - 新增 refresh token 生成和轮换(7天过期)
  - 更新 auth middleware 支持 Bearer token
  - 新增 /api/auth/refresh 端点
  - 添加 refresh_tokens 数据库表和迁移

  ## 测试
  - [x] 单元测试:token 生成和验证
  - [x] 集成测试:完整的登录-刷新-登出流程
  - [x] 边界测试:过期 token 处理

  ## 影响范围
  - 所有需要认证的 API 端点
  - 前端需要更新 token 存储和刷新逻辑
  - 部署时需要运行数据库迁移

  ## 截图/日志
  N/A(纯后端变更)

自定义 PR 模板

在 .github/pull_request_template.md 中定义模板,AI 会按照模板结构填充内容。


变更影响分析

分析变更影响

AI 通过 CKG(代码知识图谱)分析代码变更的影响范围:

用户:分析这次修改的影响

AI:变更影响分析:

  直接影响:
  ├── internal/auth/token.go(修改)
  │   → 影响 3 个调用方:
  │     - handler/auth.go:Login()
  │     - handler/auth.go:Refresh()
  │     - middleware/auth.go:Authenticate()
  │
  └── internal/model/user.go(修改)
      → 影响 5 个调用方:
        - service/user.go:GetUser()
        - service/user.go:UpdateUser()
        - handler/user.go:GetProfile()
        - handler/admin.go:ListUsers()
        - repository/user.go:FindByID()

  间接影响:
  ├── 所有使用 Authenticate 中间件的路由(约 20 个端点)
  └── 前端的 auth 模块(需要同步更新 token 处理)

  ⚠ 建议:
  - 在 staging 环境验证所有认证相关的 API
  - 通知前端团队同步更新 token 逻辑
  - 检查 CI 中的集成测试是否覆盖 token 刷新场景

回归风险评估

用户:这次修改有回归风险吗?

AI:回归风险评估:
  风险等级:中等

  ⚠ 高风险区域:
  1. middleware/auth.go — 认证中间件修改影响所有受保护路由
     → 需确保旧 session token 的过渡期处理

  ✓ 低风险区域:
  1. 新增文件 — 不影响现有功能
  2. 数据库迁移 — 仅新增表,不修改现有表

  建议测试重点:
  - 登录 → 访问受保护资源 → token 过期 → 刷新 → 继续访问
  - 并发刷新场景(多个请求同时刷新 token)
  - 旧 token 在过渡期内的行为

规范检查

提交信息规范检查

AI 会自动检查 commit message 是否符合项目规范:

✓ 类型正确:feat
✓ scope 有效:auth
✓ 标题长度:42/72 字符
✓ 使用祈使语气
✗ body 缺少变更原因说明
  → 建议添加 "Why" 段落解释迁移到 JWT 的原因

常见问题修正

问题AI 建议
标题过长自动缩短,详细内容移到 body
缺少 type根据变更内容推断合适的 type
scope 不一致参考项目历史 commit 建议统一的 scope
混合变更建议拆分为多个原子 commit

批量 commit 拆分建议

用户:这些修改应该分几次提交?

AI:建议拆分为 3 次提交:

  1. refactor(auth): 重构 token 生成逻辑
     文件:internal/auth/token.go
     原因:纯重构,不改变行为

  2. feat(auth): 添加 refresh token 支持
     文件:internal/auth/refresh.go, internal/handler/auth.go
     原因:新功能,独立于重构

  3. chore(db): 添加 refresh_tokens 表迁移
     文件:migrations/003_refresh_tokens.sql
     原因:数据库变更独立提交

最佳实践

提交频率

提交顺序

注意事项