一键上传项目到 GitHub:自动初始化 git、生成或完善 README、设置仓库 topics,并推送本地项目。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Funnyvalentine00/dsh-github-push
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。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 超级模组(toolkit 形态):一句话上传项目到 GitHub。
只要给出仓库 URL,它会自动处理 README、git init、add/commit、remote、push,一步到位。
解决什么问题
以前上传项目到 GitHub 需要手动:
- 建仓库
git init- 写 README
git add .git commitgit remote addgit push
这个插件把上面全部封装成一个工具:
dev_github_push
核心功能
- ✅ 自动识别/初始化 git 仓库
- ✅ 自动
git add -A并提交 - ✅ 自动设置/更新 GitHub remote
- ✅ 自动推送到
main分支 - ✅ 可选通过
ghCLI 自动创建不存在的仓库 - ✅ 自动处理 README:
- 没有 README → 自动生成一份较详细的 README
- README 已有内容 → 只自动补齐缺失的常用章节,不重写
- 可用
readmeMode=keep跳过,或readmeMode=rewrite强制重写 - 如果是 DSH 插件,会自动加入 DSH CLI 安装/卸载命令
- ✅ 自动设置 GitHub About topics:
- 根据项目元数据自动推断 topic(如
dsh、dsh-plugin、deepseek-harness、项目名等) - 支持通过
topics参数追加自定义 topic - 优先用
gh repo edit,没有 gh 时用 GitHub REST API(需要GITHUB_TOKEN/GH_TOKEN)
- 根据项目元数据自动推断 topic(如
- ✅ 安全演练:支持
dryRun,只打印计划,不实际改动任何文件/仓库
工具说明
dev_github_push
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
url |
string | 是 | GitHub 仓库 URL |
dir |
string | 否 | 要上传的项目目录,默认当前工作目录 |
message |
string | 否 | 提交信息,默认 Update project |
branch |
string | 否 | 分支,默认 main |
visibility |
string | 否 | 新建仓库可见性:public / private,默认 public |
readmeMode |
string | 否 | README 处理:auto / keep / rewrite,默认 auto |
topics |
string | 否 | 额外 GitHub topics,逗号分隔,例如 dsh,plugin,automation |
dryRun |
boolean | 否 | 只打印将要执行的操作,不实际改动 |
skipTopics |
boolean | 否 | 跳过自动设置 GitHub About topics |
使用示例
{
"name": "dev_github_push",
"arguments": {
"url": "https://github.com/Funnyvalentine00/my-project",
"dir": "E:/my-project"
}
}
或直接对 AI 说:
“上传
E:/my-project到 https://github.com/Funnyvalentine00/my-project,private”
测试
npm test
覆盖:URL 规范化、topic 推导、DSH CLI 安装/卸载命令、README 生成。
README 自动生成规则
- 读取项目
package.json的name/description/scripts/license - 扫描项目文件树(自动忽略
node_modules、.git等) - 生成或补齐以下章节:
- 项目名 + 简介
- 项目结构
- 安装
- 使用
- License
- 如果是 DSH 插件:DSH 安装 / 卸载(
dsh plugin --profile web add <包名>/dsh plugin --profile web remove <包名>)
Topics 自动推断规则
自动收集以下来源(去重、最多 20 个):
package.json的keywords- 如果是 DSH 插件:
dsh、dsh-plugin、deepseek-harness - 项目目录名
- 调用时传入的
topics参数(逗号分隔)
设置方式:
- 优先使用
gh repo edit <repo> --add-topic <topic> - 如果没有
gh,则使用 GitHub REST API:
需要环境变量PUT /repos/{owner}/{repo}/topicsGITHUB_TOKEN或GH_TOKEN
安装
方式 A:DSH CLI 安装 / 卸载
安装:
dsh plugin --profile web add @dsh-external/dsh-github-push
卸载:
dsh plugin --profile web remove @dsh-external/dsh-github-push
方式 B:直接注入(当前环境)
# 在 DSH 内对 AI 说:
dev_inject_plugin {"dir": "E:/dsh插件/router/dsh-github-push"}
方式 C:从源码构建
DSH_CHECKOUT=<checkout> bash scripts/build.sh
dev_inject_plugin {"dir": "<本目录>"}
依赖
@deepseek-ai/dsh-toolscordisschemastery
注意
- 如果仓库不存在且本机没有
ghCLI,工具会提示你先在 GitHub 手动建仓库。 - 自动生成的 README 是基于项目元数据的模板;需要更“智能”的文案时,可以让 AI 在推送前再人工/LLM 完善。
- 已存在的 README 不会被覆盖,只会补齐缺失章节;除非你显式指定
readmeMode=rewrite。 - 自动设置 topics 需要
ghCLI 已登录,或设置GITHUB_TOKEN/GH_TOKEN;否则会跳过并提示。
License
MIT
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-git-graph★ 8670
输入框上方提供 Git 分支选择器,并把分支泳道与提交历史画成图谱,沿着时间线找到任意变更。
Akimiya-z/codex-guard#dsh★ 136
在 DeepSeek Harness 内做提交前的 Pull Request 卫生检查:扫描当前改动中的 TODO 残留、硬编码密钥与非规范提交信息。
Cerbur/clutch-dsh#clutch-dsh-worktree★ 34
为 DSH Web UI 增加按 Git Worktree 组织 Session 的视角,同时继续由 DSH 管理原始 Project 和 Session 数据。
lehhair/dsh-diff-viewer★ 26
PiUI 风格 diff 查看器,替换 write/edit 工具调用的默认 DiffBlock。
DamonKoy/dsh-web-ui#dsh-git-graph★ 24
dsh web GUI 会话头部栏的 Git 分支选择器与提交图。
PerryLink/dsh-github★ 22
官方级 GitHub CI 集成:composite action.yml、轮询 PR 评审机器人(幂等行内评论 + status-check 门禁)以及 PR/issue 工具,所有写入走人工审批门。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。