Repository navigation
Issue 193
clean edited this page Oct 5, 2026
·
1 revision
- 类型:功能
- 状态:已实现;真实平台验收待完成
- Issue:https://github.com/ShaoClean/Alune/issues/193
- PR:https://github.com/ShaoClean/Alune/pull/195
- 最近更新:2026-10-05
- 代码基线:417e9a48e016a2c816fc383c70c7e8acc56eeb18
此前 Alune 可以查看和审阅 PR/MR、根据暂存改动生成提交信息,但创建 PR/MR 需要切换到托管平台,并手动整理分支中的多个提交。本次增加应用内创建流程及可选的 AI 标题/描述起草。
支持 GitHub、GitLab.com 和 HTTPS 自建 GitLab 的同仓库 PR/MR;从 PR/MR 页、分支菜单/列表、推送完成提示进入。支持目标分支选择、提交及文件 Diff 预览、草稿及按权限显示的指派人、审阅者和标签。创建成功后打开应用内详情。
跨仓库 fork PR 不在本次范围内。AI Review 未接入本流程。沿用提交生成的服务商、模型和语言,不复用提交生成的自定义提示词。
- 复用现有远端解析、命名/临时访问令牌和目标地址校验,平台请求由本机服务发出。Git 推送继续使用 Git 自身凭据。
- 读取本地源分支 SHA 与平台的源/目标 SHA,默认目标为平台默认分支。按固定 SHA 进行分支比较;本地分支未完整推送时提示先推送并设置上游。读取与推送地址指向不同项目时,不引导跨项目推送。
- 使用源分支、目标分支和提交版本生成预览修订,创建前重新读取并核对。检查已有同分支开放请求;重复提交复用操作编号。未知创建结果要求先查列表;GitHub PR 已创建而附加信息设置失败时保留成功结果并提示补充。
- 模板从目标分支读取:GitHub 优先
.github、根目录和docs中的 PR 模板,其次命名模板目录的首个 Markdown;GitLab 优先Default.md/default.md,其次模板目录的首个 Markdown。表单展示实际模板路径。 - AI 输入仅包含所选分支的提交消息、分支名、文件路径、可用文本 Diff 和模板,不包含未提交文件或托管平台令牌。总输入最多 60000 字符,转义计入限制。模板最多 12000 字符,提交消息合计最多 12000 字符,每文件 Diff 最多 8000 字符。截断有明确标记;生成结果先独立展示,再由用户采纳、编辑并确认创建。
- 平台响应最多读取 16 MiB;预览最多显示 100 条提交、300 个文件、每文件 20000 字符及合计 200000 字符的 Diff。平台省略、二进制和截断内容会提示。弹窗内容独立滚动,390px 下使用现有共享弹窗布局。
- 模拟 GitHub 与 HTTPS 自建 GitLab 的普通/草稿创建、详情读取与重复请求反馈。
- 临时本地和 SSH 仓库的目标分支、提交及文件预览,未推送和分支变化校验。
- 有模板、无模板及大 Diff 的 AI 生成输入,生成后可编辑,未配置 AI 可手动创建。
- 权限失败、结果不确定、创建成功但附加信息失败的反馈。
- 界面说明 AI 发送范围,确认生成不会创建 PR/MR。
- 在真实 GitHub、GitLab(含 HTTPS 自建)测试仓库使用测试令牌创建普通/草稿请求,并核对网页端结果。
环境:macOS 本机;代码提交为上述 417e9a4。平台与 AI 请求使用 fixture,Git、SSH、SQLite 和 HTTP 接口使用真实临时环境;不访问用户项目的真实平台写接口。
| 日期 | 命令或场景 | 结果 |
|---|---|---|
| 2026-10-05 |
npm run build -w @alune/shared、npm run build -w @alune/ssh-client、npm run build -w server、npm run build -w web
|
通过;web 保留已有的大文件构建提示 |
| 2026-10-05 | npm test -w server -- --runInBand pull-request-creation.spec.ts pull-request-prompt.spec.ts pull-requests.service.spec.ts pull-request-actions.spec.ts pull-request-details.spec.ts ai.service.spec.ts |
6 套件、131 项通过 |
| 2026-10-05 | npm test -w web |
240 项通过 |
| 2026-10-05 | node --test apps/web/tests/pull-request-creation.integration.cjs apps/web/tests/pull-requests.integration.cjs |
5 项通过 |
| 2026-10-05 | 创建集成用例追加有模板/无模板/大 Diff AI 请求检查 | 通过;发送内容受限,未提交文件和平台令牌未进入 AI 请求 |
| 2026-10-05 | ego-browser:AI 起草、采纳后编辑、权限失败保留输入、创建草稿后打开详情 | 通过 |
| 2026-10-05 | ego-browser:详情页使用分支菜单创建、390px 无横向溢出、已有请求打开入口 | 通过 |
| 2026-10-05 |
npm run commitlint -- --last --verbose、git diff --check
|
通过 |
| 2026-10-05 | 真实平台写入及其他操作系统的创建界面 | 未运行;当前为隔离 fixture 验证 |
这是新增创建对话框,旧版本无对应表单。下图记录实现后的宽屏表单及 390px 已有请求提示;不将模拟平台验收视为真实平台通过。


- 真实 GitHub/GitLab 令牌、项目角色及平台差异仍需人工验收;目前不能关闭 Issue 的真实平台验收项。
- 平台创建接口使用分支名称,请求发出后的并发推送仍以平台结果为准。
- 预览和 AI 会截断大内容,不能替代完整审阅和实际测试。
- 无数据库迁移。回退代码提交可移除入口/API;Wiki 独立版本管理,需要单独恢复对应文档修订。
设计文档首页 · Alune 品牌说明 · 维护约定 · 代码仓库