dsh-gitee-chat

gittested: passnpmMIT

Gitee Enterprise project management inside the conversation: issues, pull requests, kanban and the Gitee MCP toolchain.

下载量 / Downloads
1,330
依赖体积 / node_modules
35.86 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-gitee-chat

Sandbox test results

StageResult
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

![npm](https://www.npmjs.com/package/dsh-gitee-chat)

![CI](https://github.com/huayuguo/dsh-gitee-chat/actions/workflows/check.yml)

![DSH](https://www.npmjs.com/package/@deepseek-ai/dsh)

![license](./LICENSE)

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

Links

GitHub · Homepage · npm

Same category