LoserFox/dsh-git-identity
DSH 插件:git 提交固定使用环境自身作者身份(优先 gh CLI 登录账号,GitHub noreply 邮箱),GIT_AUTHOR_*/GIT_COMMITTER_* 环境变量注入压过一切 git config
项目介绍Project Overview
git-identity 是 DSH 的 profile bundle 插件,让 DSH 内所有 git 提交使用环境自身的作者身份。优先读取 gh CLI 登录账号(name 取 login,email 取 GitHub noreply 地址),其次环境变量与 git global 配置兜底。解析后写入 GIT_AUTHOR_* 与 GIT_COMMITTER_*,子进程继承以保证路径一致,并幂等回写 global config。适用于 agent 会话曾被覆盖身份、需要统一作者署名的协作场景。配置可在 bundle 中显式钉死 name/email。注意:profile 变更需重启 DSH 进程,不参与 HMR 热更新。
git-identity is a DSH profile bundle plugin that makes every git commit inside DSH use the host's author identity. It prefers the gh CLI login (name = login, email = the GitHub noreply address), then falls back to GIT_AUTHOR_* env vars and git config --global. The resolved identity is written into GIT_AUTHOR_* and GIT_COMMITTER_* so DSH subprocesses inherit it, and mirrored to global config for outside terminals. Use it when agent sessions have overwritten git authorship and you need consistent commit attribution. Note: profile changes require restarting the DSH process; HMR does not apply.
请帮我了解并安装插件:【dsh-git-identity】【https://github.com/LoserFox/dsh-git-identity】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add github:LoserFox/dsh-git-identity
把 LoserFox/dsh-git-identity 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
git-identity
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 是它贡献的
组合层。
nexu-io/open-design
ruvnet/ruflo
amruthpillai/reactive-resume
esengine/DeepSeek-Reasonix
volcengine/OpenViking
Molunerfinn/PicGo
titanwings/colleague-skill
nocobase/nocobase