@absolutejs/git

中文文档
0.19.0发布于 2026/10/26BSL-1.1TypeScriptES Module构建来源已验证近 30 天下载 1806

供应商中性认证 Git源摄取,webhook正常化,精确修正的可实现性,以及Bun和AbsoluteJS的出处.

中文使用文档

@absolutejs/ git (英语)

为 Bun 控制平面和 AbsoluteJS 认证 Git 源摄入量 .

软件包将一个签名的提供商 Webhook 变成一个正常的,授权的精确 校正, 在没有外壳的情况下检查校正, 剥去 Git 元数据, 应用 源大小和文件计数限制,并发出可移植出处。 没有 拥有证书,数据库,队列,构建沙盒,部署,或UI. GitHub App 安装也可以创建并更新已规范的检查运行, 这样可以 控制飞机报告精确订正的部署态势,无需手写 供应商有效载荷.

import { assertGitRevisionAuthorized, gitProvenanceFor } from "@absolutejs/git";
import { createGitCheckout } from "@absolutejs/git/checkout";
import { verifyGitHubPushWebhook } from "@absolutejs/git/github";

const event = verifyGitHubPushWebhook({
  body: rawBody,
  headers: request.headers,
  secret: webhookSecret,
});

assertGitRevisionAuthorized(
  {
    allowedRefs: ["refs/heads/main"],
    repository: { provider: "github", fullName: "acme/site" },
  },
  event.revision,
);

const checkout = await createGitCheckout({
  credential: { token: installationToken },
  revision: event.revision,
});
try {
  await isolatedBuild(checkout.sourceRoot, gitProvenanceFor(event));
} finally {
  await checkout.dispose();
}

安全边界

  • 在解析 JSON 之前, 对照未激活的请求字节验证签名 .
  • 衍生犬科供应商 URL 而不是信任 Webhook 克隆 URL .
  • 授权寄存器身份和在退出前的完整参考.
  • 获取并核实确切的承诺, 永远不要移动分支提示.
  • 通过 Git 参数作为数组; 证书使用子进程环境 配置且从未被嵌入到仓库 URL 或出错中.
  • 删除 .git,拒绝链接和特殊文件,并执行源边框 将一棵树交给一个构建系统.
  • 运行安装并建在一个单独的沙盒中,有网络,CPU,内存, 时间和产出限制。 这个政策属于主控飞机.

@absolutejs/deploy/release-artifact 仍然是不可改变的生态系统所有者 部署档案和他们的SHA-256诚信合同.

版本与发布记录

@absolutejs/git 共发布 28 个版本,首次发布于 2026/07/17;过去 12 个月发布了 28 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.19.0latest2026/10/2613 天前
0.18.02026/09/101 个月前
0.17.02026/09/101 个月前
0.16.02026/09/091 个月前
0.15.02026/09/091 个月前
0.14.02026/09/091 个月前

关于 @absolutejs/git 的常见问题

@absolutejs/git 是什么?

供应商中性认证 Git源摄取,webhook正常化,精确修正的可实现性,以及Bun和AbsoluteJS的出处.

如何安装 @absolutejs/git?

在项目目录运行 npm install @absolutejs/git,或使用 pnpm add / yarn add / bun add。

@absolutejs/git 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@absolutejs/git 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@absolutejs/git 可以商用吗?

@absolutejs/git 使用 BSL-1.1 许可。声明的许可为 BSL-1.1,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@absolutejs/git 的下载量有多少?

根据 npm 官方下载统计,@absolutejs/git 在 2026/10/05 – 2026/11/03 这 30 天内被下载 1,806 次,日均约 60 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@absolutejs/git 还在维护吗?

最新版本 0.19.0 发布于 2026/10/26(13 天前);至今共发布 28 个版本,其中过去 12 个月发布了 28 个;首次发布于 2026/07/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。