git push 被墙时经 GitHub API 重建提交历史
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add tianyao2003/github-push-via-api该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
智能体技能加脚本,git push 被拦时通过 REST Git Data API 在 GitHub 上重建完整提交历史,SHA 完全一致,还带两个假 404 陷阱。
README
由 DeepSeek 最新模型翻译生成github-push-via-api
当 git push 无法连接 github.com:443,但 api.github.com 仍可访问时,通过 GitHub Git Data API 上传已有的本地 Git 提交历史。
这是受限网络环境下的备用方案;普通环境优先使用 git push。
中文 · English
什么时候使用
适用于以下场景:
- git push 因代理、防火墙、沙箱或网络策略无法连接 github.com:443;
- api.github.com 可以访问;
- 本地已经有需要上传的 Git 提交历史;
- 需要尽量保留原有提交的父子关系、作者、时间和 message。
如果普通的 git push 可用,请继续使用它。这个工具不替代常规 Git 传输。
快速开始
脚本无第三方依赖,需要 Node.js 18+ 和 Git。远端仓库需要已经存在。
展开完整文档(README 剩余 1 节)
github-push-via-api 当 git push 无法连接 github.com:443,但 api.github.com 仍可访问时,通过 GitHub Git Data API 上传已有的本地 Git 提交历史。 这是受限网络环境下的备用方案;普通环境优先使用 git push。 中文 · English 什么时候使用 适用于以下场景: - git push 因代理、防火墙、沙箱或网络策略无法连接 github.com:443; - api.github.com 可以访问; - 本地已经有需要上传的 Git 提交历史; - 需要尽量保留原有提交的父子关系、作者、时间和 message。 如果普通的 git push 可用,请继续使用它。这个工具不替代常规 Git 传输。 快速开始 脚本无第三方依赖,需要 Node.js 18+ 和 Git。远端仓库需要已经存在。 先空跑,确认本地范围、对象数量、Token 和远端分支: REPO_DIR=/path/to/repo REPO_SLUG=owner/repo BRANCH=main node scripts/push-via-api.mjs --dry-run 确认空跑结果后再推送: REPO_DIR=/path/to/repo REPO_SLUG=owner/repo BRANCH=main node scripts/push-via-api.mjs 推送结束后,脚本会打印本地和远端 HEAD,并比较两者的 SHA: local HEAD : <sha> remote HEAD : <sha> SHAs match : true Token 和配置 Token 只存在于进程内存中,不会写入磁盘。脚本按以下顺序读取 Token: 1. GITHUB_TOKEN 2. gh auth token 3. GitHub CLI 的 hosts.yml 经典 Token 通常需要 repo 权限;如果提交历史涉及 .github/workflows/,还需要 workflow 权限。细粒度 Token 需要目标仓库的 Contents 写权限。 | 环境变量 | 说明 | | REPO_DIR | 本地仓库路径,默认为当前目录 | | REPO_SLUG | GitHub 上的 owner/repo,必填 | | BRANCH | 远端目标分支,默认 main;本地也必须能解析该 ref | | REWRITE_AUTHOR | "Name <email>";会同时改写每个 commit 的 author 和 committer | | GIT_EXE | Git 自动探测失败时使用的绝对路径 | | GITHUB_TOKEN | 显式提供的 GitHub Token | | FORCE | 设为 1 才允许覆盖包含本地历史之外提交的远端分支 | 安全边界 脚本最后会强制更新远端分支。若远端分支包含本地历史之外的提交,脚本会打印两边的 HEAD,并以退出码 2 停止。 只有确认远端提交可以被替换时,才设置: FORCE=1 REPO_DIR=/path/to/repo REPO_SLUG=owner/repo node scripts/push-via-api.mjs 上传过程中可能先创建 GitHub 对象,再在最后一步更新 ref。中途失败时可能留下未被分支引用的对象;重新执行前应先确认远端分支状态。 SHA 保留范围 GitHub 使用与 Git 相同的对象哈希算法。对于当前脚本支持的普通、未签名 commit,在不设置 REWRITE_AUTHOR 且提交元数据可完整重建时,远端 HEAD 通常可以与本地保持相同 SHA。 以下情况当前版本不保证 SHA 一致: - 使用非整点时区的提交; - 带 gpgsig、mergetag 或其他额外 commit header 的提交; - 需要改写 author 或 committer 的提交。 脚本会在结束时比较 HEAD SHA;如果不一致,应把结果视为需要进一步检查,而不是默认认为上传完全等价。 当前限制 - 只重建 commit、tree、blob 和 branch ref; - submodule、Git LFS 对象、tag、release 资产不在范围内; - 单个 blob 受 GitHub 100 MB 限制,另有常规 API 限流; - BRANCH 需要能在本地仓库中解析; - 远端仓库需要已经存在;创建仓库属于单独的准备步骤; - REWRITE_AUTHOR 会改变 commit SHA,这是预期行为。 工作原理 1. 使用 git rev-list 读取提交顺序,用 git cat-file --batch 批量读取 tree 和 blob。 2. 通过 Git Data API 依次创建 blob、按层创建 tree、按提交顺序创建 commit。 3. 把目标分支指向新的 head。 4. 比较本地和远端 HEAD SHA。 详细的网络诊断、Token 权限判断、404/422、Windows EBUSY 和验证流程见 SKILL.md。 安装 git clone https://github.com/tianyao2003/github-push-via-api 作为技能使用时,把 SKILL.md 放进所用 runtime 的 skills 目录,或让智能体直接读取本仓库。 仓库结构 github-push-via-api/ ├── SKILL.md # Agent Skill:判断流程、权限和故障排查 ├── README.md # 中文说明 ├── README_EN.md # English documentation └── scripts/ └── push-via-api.mjs # 零依赖 Node.js 实现 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
tianyao2003/github-push-via-api
git push 被墙时经 GitHub API 重建提交历史
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。