workbench for openUBMC Studio
Access rate limit exceeded. Please log in to continue.
openUBMC 社区工作台
把 openUBMC 社区的协作流程与规范固化进 IDE —— 行动优先的驾驶舱、四种视图、AI 一等公民。
需求与缺陷怎么流转、检视意见怎么提怎么销、PR 满足哪些门禁才能合入、机器人听哪些命令 —— 这些原本散落在文档和老成员经验里的知识,在这里变成现成的视图、按钮,以及 AI 助手可以直接调用的工具。
今日 · 行动优先
不再让你从「SIG → 仓库 → Issue/PR」一层层翻。左侧栏与仪表盘都按行动收敛成几组—— 需要我处理 / 我负责的 PR / 我的 PR / 我在推进 / 我关注的,每条都带状态、创建人、本地分支与「下一步」。 顶部一行全局脉冲(待处理 / 未读 / 阻塞 / 进行中),维护者 / 审核者 / 贡献者 + RM / QA 视角一处切换、两侧联动。

表格 · 密集扫读
只放 Issue(PR 在「PR 检视」里),列式紧凑排布,适合快速扫读与行内操作。 每个列头都带 Excel 式勾选过滤(取值按当前数据动态生成,勾哪些显示哪些),外加 SIG / 仓库 / 分配给我 / 本地分支筛选与列排序。

看板 · 跟随社区版本看板
默认是按工作流状态分列、可拖拽推进的本地看板;也可一键切换到社区版本看板(如「openUBMC 26.09 需求看板 / 缺陷看板」), Issue 随所选看板变化,直接看某个版本里还有哪些需求 / 缺陷没闭环。

PR 检视 · 门禁一目了然 + AI 检视
PR 单独成一类(门禁式合入生命周期)。每张卡片把合入门禁(CI / CLA / lgtm / approved / squash / 未解决检视)画成一排状态点, 常驻显示行内检视进度 N/M(已解决 / 总数),状态直接告诉你「球在谁手上」:待我检视 / 作者已更新待复审 / 已检视待作者修改 / 检视已闭环待 lgtm。 点 ✦ AI 检视 滑出面板,预览将注入的上下文与可调用工具,确认后一键发给 AI。支持状态 / SIG / 仓库筛选与按创建 / 更新时间排序,以及自动(30 分钟 / 1 小时)与手动刷新。

AI 接入
琥珀色 + 微光是 AI 的专属信号:全局协作区、每行 / 卡片的主操作、侧栏行尾 ✦,三处一致。 一键把任务连同社区规范上下文交给 AI 助手(Claude Code、Claude App/Web、Codex、OpenCode、Chrys 或剪贴板), AI 按社区流程完成认领、评审、回复检视意见、推进合入。
规范内置在工具行为里:比如批准合入前自动校验 CI / CLA / 未解决检视意见 / squash,不满足就拦下;认领 Issue 时自动指派并评论。使用者不需要背规则。
MCP 工具
扩展通过 openubmc.mcp-host 注册一组 gitcode_* 工具供 AI 调用,大致五类:
- 读取:仓库、Issue、PR、变更文件、评论与检视讨论
- 操作:建 Issue/PR、评论(全局、行内锚定、线程回复)、标签、指派、resolve 讨论、认领、squash、批准合入
- 社区看板:列看板、列看板条目,以及把 Issue/PR 添加 / 移动 / 移除出看板
- 本地审查:把 PR 检出到本地临时目录做深度审查,用完清理
- 社区知识:SIG 名单、Issue 工作流规范、机器人命令参考
工具行为以真实 GitCode API 实测为准,不依赖文档推断;写操作尽量做读回校验,比如行内评论发出后确认锚定成功,失败会明确报错而不是假装成功。
安装与构建
需要 Node.js 18+ 和 openUBMC Studio。
npm install
npm run compile # 编译 TypeScript 到 out/
npm run package # 打包 VSIX
npm run deploy # 打包并安装到本地 Studio,重启 Studio 窗口生效
手动安装某个 VSIX:
"/Applications/openUBMC Studio.app/Contents/Resources/app/bin/studio" \
--install-extension bmcstudio-community-workbench-<version>.vsix
配置
配置项(前缀 communityWorkbench.) |
说明 | 默认值 |
|---|---|---|
gitcode.organization |
GitCode 组织名 | openUBMC |
gitcode.repositories |
监控的仓库列表 | [] |
gitcode.baseUrl |
GitCode API 地址 | https://api.gitcode.com/api/v5 |
gitcode.bypassSystemProxy |
GitCode API 请求直连(绕过系统代理) | true |
defaultRole |
默认角色视角 | contributor |
aiAssistant |
AI 助手:claude-vscode / claude-app / claude-web / codex / opencode / clipboard / chrys |
claude-vscode |
prRefreshIntervalMinutes |
自动重新扫描维护者/审核者 SIG 中 PR 的间隔分钟数;0 = 关闭自动刷新 |
30 |
claudeAppName |
Claude 独立应用的 macOS 应用名称 | Claude |
claudeBundleId |
Claude 独立应用的 macOS bundle id | com.anthropic.claudefordesktop |
claudeWebUrl |
Claude Web 客户端地址 | https://claude.ai/new |
claudeCommand |
Claude Code VS Code 扩展打开会话的命令 ID | claude-vscode.primaryEditor.open |
chrys.autoSend |
打开 Chrys 后自动发送提示词 | true |
chrys.agent |
社区任务使用的 Chrys 智能体(空表示用当前选中的) | "" |
PR 检视视图里可直接选择自动刷新间隔(关闭 / 30 分钟 / 1 小时)并手动刷新;AI 助手可通过命令「社区工作台:选择 AI 检视助手」在 Codex Desktop、Claude Application、Claude Web、Claude Code VS Code 扩展、OpenCode、剪贴板模式和 Chrys 之间切换。
测试
单元测试用 vitest,GitCode 客户端是 mock 的,不需要网络:
npm run test
改动 GitCode 客户端后,还要跑真实 API 的端到端冒烟,覆盖全部写路径(Issue 生命周期、PR 评论锚定、线程回复、resolve 等):
npm run compile
node scripts/smoke-gitcode-api.js
冒烟需要一个个人沙箱仓库(默认 <你的账号>/gitcode-mcp-sandbox,可用 --repo 指定)和一个相对默认分支有 README 改动的测试分支,准备步骤见脚本头部注释。脚本里同时固化了一批实测出来的 GitCode API 行为(响应结构、字段类型等),作为回归基线。
贡献
- Fork 本仓库到个人空间,从最新
main切特性分支 - 涉及 GitCode API 行为的改动,先跑 E2E 冒烟用真实 API 验证,不要凭文档猜
- 提交 PR 到
openUBMC/bmcstudio_community_workbench:main,正文用#编号关联 Issue - 多个 commit 的 PR 会被标记
stat/needs-squash,评审人评论/squash设置扁平化合并即可,不需要手动压缩 - 合入由机器人门禁控制:
lgtm+approved+ CI 通过 + CLA 签署,且检视意见全部 resolve;作者不能自批 - 机器人命令的完整参考在
openUBMC-test/infrastructure仓的docs/robot/command_zh.md,AI 也可以调用gitcode_get_bot_commands查询