🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

API 推送提交 tianyao2003/github-push-via-api

DeepSeek Harness
tianyao200310 天前有提交已提供中文文档扫描:无法判定

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 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]!
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
数据截至 2026/10/26·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 10 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

⚠︎ 实装验证未通过(unknown · 2026/10/26) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 包内无可扫 JS
  • · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/4(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

智能体技能加脚本,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
预览分享卡片长什么样 ↓tianyao2003/github-push-via-api
分享 · DeepSeek Harness Hub
tianyao2003/github-push-via-api

git push 被墙时经 GitHub API 重建提交历史

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部