git 提交固定使用环境自身作者身份,环境变量注入压过一切 `git config` 设置。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:LoserFox/dsh-git-identity
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DSH profile bundle(0812+ 的官方插件系统):让 DSH 内产生的所有 git 提交使用
环境自身的作者身份。优先读取 gh CLI 的登录账号(name 取 login,email 取 GitHub
noreply 地址 <id>+<login>@users.noreply.github.com),其次启动环境的
GIT_AUTHOR_*、git config --global 兜底。
为什么需要它
DSH 的 agent 会话通过 bash 工具执行 git commit。历史上一旦某个会话显式
-c user.name="DSH Agent" 或改掉了 git 配置,后续提交就会带着错误的作者。
本插件在加载时把解析到的身份写入 GIT_AUTHOR_* / GIT_COMMITTER_* 四个环境变量,
DSH 的 subprocess 层会把 process.env(剔除凭据)传给每个 bash 子进程,而 git 的
环境变量优先级高于一切 git config——所以 DSH 内任何路径发起的提交都必然使用该身份。
同时幂等同步回 git config --global,让插件进程外的普通终端提交也保持一致
(仅当 global 配置缺失或被改错时写回)。
安装(0812 profile bundle 系统)
# 从本仓库 checkout 安装到 profile(web / headless 等),bundle 声明自动加入组合层
dsh plugin --profile web add /path/to/dsh-git-identity
dsh plugin --profile headless add /path/to/dsh-git-identity
# 验证
dsh --profile web --dump-config | grep git-identity
安装后需重启目标 profile 的 DSH 进程(组合层变更不参与 HMR 热更新)。
身份解析优先级
- 插件配置
{ name, email }(显式钉死,最稳;未登录 gh 时可在此配置) - gh CLI 登录账号(
gh api user) - 启动环境的
GIT_AUTHOR_NAME/GIT_AUTHOR_EMAIL git config --global user.name/user.email兜底
全部解析不到时只告警、不注入,绝不凭空编造身份。
配置
# 在 bundle 的 patch 里给行加 config(可选;不配置则按上述优先级自动解析)
- insert:
- id: git-identity
name: '@loserfox/git-identity'
config:
name: LoserFox
email: 57448027+LoserFox@users.noreply.github.com
开发
编辑 index.mjs 后无需构建(纯 ESM,零依赖)。package.json 的
dsh.bundle.patch 声明本包是一个 profile bundle;cordis.patch.yml 是它贡献的
组合层。
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-git-graph★ 8076
输入框上方提供 Git 分支选择器,并把分支泳道与提交历史画成图谱,沿着时间线找到任意变更。
Akimiya-z/codex-guard#dsh★ 139
在 DeepSeek Harness 内做提交前的 Pull Request 卫生检查:扫描当前改动中的 TODO 残留、硬编码密钥与非规范提交信息。
Cerbur/clutch-dsh#clutch-dsh-worktree★ 28
为 DSH Web UI 增加按 Git Worktree 组织 Session 的视角,同时继续由 DSH 管理原始 Project 和 Session 数据。
lehhair/dsh-diff-viewer★ 27
PiUI 风格 diff 查看器,替换 write/edit 工具调用的默认 DiffBlock。
DietCokewithSugar/dsh-user-experience★ 20
帮你发现项目中可能存在的用户体验问题:自动走查 React/TypeScript 源码,定位问题并给出具体优化建议。
DamonKoy/dsh-web-ui#dsh-git-graph★ 19
dsh web GUI 会话头部栏的 Git 分支选择器与提交图。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。