dsh-gitee-chat
Gitee Enterprise project management inside the conversation: issues, pull requests, kanban and the Gitee MCP toolchain.
Install
dsh plugin --profile web add dsh-gitee-chat
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
dsh-gitee-chat




DSH 插件:在会话里管 Gitee 企业项目。
模型只触发,脚本去拉数,卡片在对话里画图 —— 不做侧边栏,不维护本地数据库。
它解决什么
要么开侧边栏看板,要么把整坨 JSON 塞进模型上下文 —— 这个包把两件事拆开:
模型调用 gitee_board ← 只触发一次
│
├─→ gq 脚本拉 Gitee 企业版 API ← 数据由后台脚本取,字段已裁剪
├─→ 模型只拿到 summary 摘要 ← 几十~一千 token,与数据量无关
└─→ 卡片直接找宿主路由要全量数据 ← 不经过模型,想画多少画多少
一句话:上下文占用与数据量解耦。一千个工作项和十个工作项,模型看到的摘要一样长。
从 0.5.4 起还多了一条:面板数据会留一份带时效的快照,会话里的 agent 可以用
gitee_board_snapshot 直接读它(附 fetchedAt / ageSeconds / stale),
不用重新联网、也不占多少 token。
安装
三种来源都是同一份 npm pack 产物(files 白名单 + prepare 构建,拿来即用):
来源 · 命令 · 什么时候用
npm 官方源(推荐) · dsh plugin --profile desktop add dsh-gitee-chat · 默认;DSH 的标准安装方式
GitHub Release 附件 · dsh plugin --profile desktop add "https://github.com/huayuguo/dsh-gitee-chat/releases/download/v0.5.4/dsh-gitee-chat-0.5.4.tgz" · 直连 GitHub 不稳时的备用
git 直装 · dsh plugin --profile desktop add "git+https://github.com/huayuguo/dsh-gitee-chat.git#v0.5.4" · 想跟某个 tag / 分支
- profile 要对:桌面版是
desktop,dsh web是web。装错 profile 是静默失效 —— 界面里什么都没有,也不报错。 - 桌面版的
dsh用应用自带的那个:全局装的dsh会拒绝--profile desktop。路径在
<应用目录>\resources\runtime\cli\bin\dsh.cmd;等价 GUI 入口是「设置 → 插件 → 添加插件」,
填 dsh-gitee-chat(npm)或 file:<本包目录>(本地)。
- 升级 =
remove+add:file:与 npm 装法都是副本,没有自动更新。从 0.5.3 升上来时,
profile 里可能还留着旧的两行预设(preset-gitee-exec / preset-gitee-manager),删掉它们,别留两个 Gitee 入口。
- npm 只往官方源(
registry.npmjs.org)发一次;国内镜像会自动同步,不要往镜像发(也发不上去)。 - 包里有什么:
files白名单只发lib(含lib/types/类型声明)、vendor(随包 MCP 二进制)、
三个运行期脚本(scripts/setup.mjs、scripts/check-presets.mjs、scripts/gitee/)、skills、
presets、assets、两个 cordis*.patch.yml、LICENSE、README.md、README.en.md、USAGE.md、icon.svg;
构建与自检脚本留在仓库里,不发 src。
让 AI 装上并配好(推荐)
本包自带一个 skill(skills/dsh-gitee-chat/SKILL.md),装了之后直接说:
帮我配置这个 Gitee 插件,配置项你问我。
它先探测环境(token 在不在、token 能看见几个企业、随包 MCP 在不在、哪个 profile 装了本插件),
猜不到的一律先问(用哪个企业、能不能直接改数据 allowWrites、规范要求几个标签),
再用 node scripts/setup.mjs apply --answers '…' 写配置:只替换 profile 的 cordis.patch.yml 里
# >>> gitee-chat / # <<< gitee-chat 两个哨兵之间的本插件那一段(改前先备份),
顺带写 $DSH_HOME/.gitee-chat/config.json、落地随包 MCP 二进制,最后 verify 自检并汇报。
配置类改动热重载(刷新页面即可),只有动过代码 / lib/ 才需要重启 dsh web。
Windows 一键安装(新机器)
git clone https://github.com/huayuguo/dsh-gitee-chat.git cd dsh-gitee-chat scripts\install-dsh.cmd
脚本一次做完:Node(优先用桌面应用自带 runtime,没有才 winget 装 LTS)→ dsh CLI → pnpm →
本包构建 → file: 安装 → 写默认配置 → 自检,并把 PATH 在当前窗口刷好。某一步失败它会说清原因,
不假装成功。撤销:
scripts\uninstall-dsh.cmd :: 全清:dsh + Node + 相关文件夹 + 脚本策略 scripts\uninstall-dsh.cmd --keep-node :: 机器本来就有 Node,只清 dsh
装完打不开、报错看不懂,先查 [USAGE.md 的排障表](./USAGE.md#三出问题先看这张表);
升级后出现两个 Gitee 入口、旧预设行残留这类症状都在里面。
手工 / 开发安装
pnpm install && node build.mjs dsh plugin --profile desktop add "file:$PWD" node scripts/setup.mjs apply # 写配置(enterpriseId: 0 = 自动识别企业) node scripts/setup.mjs verify # 自检;新机器上「还没有 token」是预期,不算装失败
改 src/、跑自检、提 PR 的流程见 [CONTRIBUTING.md](./CONTRIBUTING.md)。
配置 token
在应用里 设置 → Gitee 企业项目 填 token 保存即可 —— 这是唯一的界面入口(会话里的
「Gitee 项目」标签页没有配置入口:没配 token 时面板本身就取不到数),存完即时生效。
需要的是 Gitee 企业版的 access token(个人版 token 打不到企业端点);能看多少、能改多少,
最终取决于这个 token 在 Gitee 云端的角色 —— 拿不到就是 403/404,插件这一层只是「不给误操作的承诺」。
同一个设置页里还有另外两块:当前企业(token 可见多家企业时选一个,避免拿错公司的数据)和
缓存与后台刷新(见下文「缓存与时效」)。
取数脚本按优先级解析:
1. 环境变量 GITEE_ENT_MCP_ACCESS_TOKEN(或 GITEE_ACCESS_TOKEN、GITEE_TOKEN)
2. 文件 $DSH_HOME/.gitee-chat/token
3. 文件 $DSH_HOME/gitee-chat-token、~/.gitee-token
两个容易踩的点:
- 桌面版从开始菜单启动时不继承 shell 里
export的变量(只继承注册表里的用户/系统变量)——
「网页版能用、桌面版说没有 token」多半是这个原因,所以优先用界面填。
- 已经挂载的 MCP 子进程只在挂载时读一次 env 与 token 文件,改完要重启 DSH;
gq 脚本每次调用现读(界面保存即时生效)。
自检:
node scripts/gitee/gq.mjs health # token / 企业 / 连通性 node scripts/gitee/gq.mjs role # 我是谁、什么人格、这个档能做什么
Gitee 企业版端点要求 Authorization: Bearer <token> 加 MCP 同款 User-Agent,
两者缺一会返回 Only For MCP Gitee Enterprise Application —— 脚本已内置,自行 curl 时别漏。
界面
会话头里的「Gitee 项目」标签(与 对话 / 轨迹 / 上下文 并列)打开就是整屏工作台,
它渲染在对话正文区里、不接管右侧边栏(文件预览、别的面板照常用)。
模型调用 gitee_board 时,对话里还会贴一张看板卡片(KPI + 状态分布 + 项目进度 + 风险清单,
按摘要裁剪过);要下钻就用整屏工作台。
0.5.4 起没有「Gitee 模式」这道门:任何会话都能打开面板、都能点写操作的按钮
(经 POST /write、/issue-create、/pr/create、/pr/action 四个写路由出去)。
能不能改由 token 在云端的角色与部署配置 allowWrites 决定,与你在哪个会话无关。
工作台自己向宿主路由取数(挂载即拉 + 右上角刷新 + 30 秒读缓存),全程不经过模型,
所以数据多大都不占上下文。写操作后不整页闪:后台重取后原地更新,看到的是服务端真值。
六个页签
页签 · 内容
概览 · 四张 KPI 卡(项目数 · 工作项 · 待我处理 PR · 逾期工作项)+ 工作项状态分布环图 + 项目进度条 + 归我处理的风险 + PR 待办
项目 · 左侧项目列表 + 工作项表;点仓库卡片进「仓库下钻页」,点工作项行开详情
我的工作项 · 企业内「我是负责人 + 我是协作者」的工作项聚合(脚本在一次 payload 里算好,不额外请求),未完成 / 完成 / 逾期 / 全部可切;点一行直接开详情
合并请求 · 四种筛选(待我审核 / 待我测试 / 我提出的 / 全部)× 四种状态(打开 / 已合并 / 已关闭 / 全部状态);顶部另有「可合并」卡(审查与测试均已通过);抽屉里审、测、合
知识库 · 企业知识库的节点树(文件夹 + 上传附件形态):左侧项目列表 + 右侧节点树,按需展开;预览交给侧边栏插件
固定分析 · 9 张卡片:项目健康度 / 成员负载 / 延期清单 / 停滞 / 规范体检 / 进度偏差 / 交付容量 / 里程碑达成 / 交付趋势
头部会写清数据来源(实时拉取 / 样例数据)、生成时间、当前身份,以及「缓存」「已截断」这类标记。
仓库下钻页(项目 → 仓库)
点项目页里的仓库卡片,会下钻成三栏:
[项目列表] │ [该项目的仓库列表] │ [仓库详情:工作项 / 合并请求 / WIKI]
- 栏宽可拖动并记住;
- 中栏的仓库列表可以切换,换仓库只重取右栏;
- 右栏三个页签:工作项(可按仓库新建、点行开详情)、合并请求(点行直接开抽屉)、WIKI;
- WIKI 首次点开会浅克隆整个 wiki 仓库到本地,之后读本地副本,
刷新才fetch(离线也能看);
没有 WIKI 的仓库会明确说明,不会白屏;
- 返回按钮回到项目页;在仓库详情里换项目会留在三栏视图、清掉当前仓库。
合并请求:建 → 审 → 测 → 合
新建 PR 不再只能去网页:列表右上角「+ 新建 PR」打开插件内弹窗 —— 仓库下拉、源分支 / 目标分支下拉
(分支从企业 API 现取;源 = 目标,或仓库只有一个默认分支时按钮置灰并说明原因)、标题、描述、
一键「**套用模
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::5,最后更新 2026-10-28