@archigravity/gate

中文文档
1.9.0发布于 2026/11/03SEE LICENSE IN LICENSE.mdES Module零依赖近 30 天下载 1797

ArchiGravity部署大门——在CI进行建筑检查并进行推. 张贴您宣布的片段, 让服务器计算判断结果; 没有秘密, 自己决定不了 .

中文使用文档
文档目录7 节
  1. 用这个
  2. 设置它
  3. 图标
  4. 配置
  5. 退出代码
  6. 留下什么给你的回扣
  7. 所需资源

@ archigravity/ 关卡

ArchiGravity部署大门,在你的CI.

您的Repo宣布它拥有的那部分系统。 每一次拉动请求,都会发出声明 回答一个问题: 此更改是否断开一些 下游的公关里没人能看见吗?

它本身没有计算出来。 它发布您的声明, 使判决服务器返回 以代码退出您的分支保护 .

用这个

# .github/workflows/archigravity-gate.yml — blocks the merge
name: ArchiGravity gate
on: pull_request

permissions:
  contents: read
  pull-requests: write
  issues: write

jobs:
  gate:
    name: Merge gate
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npx --yes @archigravity/gate@<version> check
        env:
          AG_GATE_KEY: ${{ secrets.AG_GATE_CHECK_KEY }}
          AG_SYSTEM_ID: ${{ vars.AG_SYSTEM_ID }}
          AG_FRAGMENT_KEY: ${{ vars.AG_FRAGMENT_KEY }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# .github/workflows/archigravity-ratify.yml — records what actually landed
name: ArchiGravity ratify
on:
  push:
    branches: [main]

permissions:
  contents: read
  id-token: write

jobs:
  ratify:
    name: Push ratify
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npx --yes @archigravity/gate@<version> ratify
        env:
          AG_GATE_KEY: ${{ secrets.AG_GATE_RATIFY_KEY }}
          AG_SYSTEM_ID: ${{ vars.AG_SYSTEM_ID }}
          AG_FRAGMENT_KEY: ${{ vars.AG_FRAGMENT_KEY }}

两把钥匙,那就重要了. 薄荷a gate:check 用于拉动请求和 a 单独一个 gate:ratify 为推力工作。 批准是记录装运货物的电话;a 拉出请求从来不需要它,一个密钥如果从不宽则最容易保持窄.

机密设定为每个STEP,而不是文件的顶部. 工作流程级别 env 手握每个秘密 包括: checkout 和任何第三方行动 你以后添加。 一样 原因 permissions 坐在每份工作上而不是在文件中:拉出请求的工作是唯一的工作 能够写评论的 批准工作是唯一能铸造身份标志的 可以做别人的工作.

这也是为什么 check 携带 if: github.event_name == 'pull_request'有话要说 在合并之后, 判决评论只存在于拉力请求上 将给予无法使用它们的工作评论权限。 合并是 ratify报告.

然后标出 合并闸门 作为树枝保护的必要检查。 一个红色的判断现在挡住 合并而不是与之争论.

两个文件而不是一个有两个任务, 目的: 一个文件意味着每个通道都被过滤 gitHub 将过滤任务列表为 跳过 所以每个拉动请求都会携带 一个永远跳过检查, 第一件事是,谁被跳过,是否是 糟透了,我还没说完呢 分开,每起火只属于它的地方 没有什么可解释的.

它们不能互换. 合并闸门 就是那个挡住的. 推动批准 保留模型 老实说实际部署的是什么 把它放出去 大门慢慢地开始检查 系统已经不复存在.

将准确的版本固定下来——替换 <version> 与该页的顶部。 我们宁愿 在你审查过的一条线上升级 而不是有一个新的释放 到达一个不事先通知的工作 钥匙connect 财务报告和审定财务报表 init 为您写出指针, 总是生成它的版本 。 )

设置它

npx --yes @archigravity/gate connect

它要求一个 设置符牌 ——在你的系统页面上做成的,短暂的,也是你唯一的价值 永远复制。 然后它显示了一个计划,在你的"是": 薄荷两把门钥匙, 把它们直出 通过您自己输入 GitHub gh (他们从来没有出现在屏幕上),写工作流程,钩子和 并告诉你还有一件事可以点击。 系统哪个部分的回波 成为已编号的菜单,而不是错误键入的字段.

没有 gh 在机器上吗? connect 在创建任何东西和要约之前停止 --print-secrets, (中文(简体) ), 它印了一次钥匙让你粘贴自己.

其下方的手动路径仍然可用 :

npx --yes @archigravity/gate init \
  --system-id <your-system-id> \
  --fragment-key <this repo's name in the system>

将上方的工作流程,前推钩,并作标记. 它打印出秘密和变量 设定并永远不设定 —— 它没有业务持有您的证书。 随时再运行一次,它 更改任何已经正确的文件, 它不会覆盖您撰写的文件( 它告诉你 ) 以何为补充)。 一旦标记存在,你就可以放下两面旗帜.

两个识别符都来自您的系统页面, 也没有被猜测. 部分名称 (单位:千美元)--fragment-key特别是,系统已经知道这个存放处是——而不是—— 文件夹名称, 通常不同 。 错误的人是看不见的,而不是大声的:一切都同意自己和自己 门读这首歌是第二首 未知的.

那么,当事情不起作用时:

npx --yes @archigravity/gate doctor

门外的出站码2包括"没有钥匙","错误钥匙","没有申报","没有窃听"和"我们是" 无法到达". doctor 说出什么,永远不打印一个秘密的价值.

图标

check写一篇粘稠的PR评论
ratify合并到主机后运行:记录实际降落的物体。 配置后, 管道就不会失效
pre-push新鲜度检查, 用于一个出击前的钩子
init接通这回波:工作流程、钩子、标记
doctor检查线路和名称 缺少什么
login在您的计算机上: 用 GitHub 签名一次 —— 您的推力会被检查为您的
whoami此计算机的签名人
logout在此签名并撤销服务器上的密钥

login 显示要输入的代码 : github.com/login/device 并保持您的登录 ~/.config/archigravity/credentials.json只有你才能读 它保存的是你的私人钥匙 它让你 特工和大门在你的工作空间里为您服务90天——阅读和提议修改。 你看见了,而且可以 取消它,在设置 ~代理访问.

配置

在整个环境中——永远不要争论,因为争论出现在 ps 输出和 CI 木头.

AG_GATE_KEY这个重播的门钥匙。 一个秘密
AG_SYSTEM_ID此 repo 属于哪个系统
AG_FRAGMENT_KEY该系统的哪一部分
AG_GATE_URL如果您不在主机上的话
AG_FRAGMENT_PATH默认为 .archigravity/fragment.tdl

退出代码

它们对于分支保护的意义不同,因此它们从未被合并.

0变化是明确的
1红色 ——这个变化打破了下游的东西. 公关评论说:
2无法运行闸门: 密钥、 配置或服务无法到达

A 类 2 是我们的问题 而不是对你建筑的判断 它阻止合并,因为 当波浪无法检查时会改变的门不是门.

留下什么给你的回扣

没有分析运行在这里, 没有遥测,自动更新或运行时间 依赖船与之.

check 财务报告和审定财务报表 ratify 发送主机门一件事: 这repo的部分 - 声明你 写作并可以在自己的repo中读取。 你的消息来源从不读取,从不被他们上传.

如果你在JS的回放中安装这个包 已经装了电线 它会为你播下预推钩. 它只是在那里:不是在CI里,不是在没有标记的回放里, 从来没有过一个你写的钩子. 设定 AG_GATE_SKIP_POSTINSTALL=1 把它完全关掉.

可选 pre-push 钩子不同,安装前值得阅读. 当一推 打开密码,它会把版本的食谱交给已经打开的CLI代理商 您的机器( e)claude 或者说 codex),而代理读取你的本地diff, 对于任何 其他任务你给它。 那是你的经纪人 在你的机器上 根据你现有的信任决定 这里没有寄出去的 如果您不想要, 请不要安装钩子 : check 这是 权力和它是完整的没有它.

签字人:login),钩子还检查了您在每次被逼犯时的角色 并发送这个repo的部分—— 声明在 .archigravity/fragment.tdl 在那个承诺中,永远不要你的消息来源——所以拉出请求可以说"检查 当地由你。" 它从不停止一推:签出,下线或其他什么,它印出一行并进行推.

所需资源

节点20+,没有别的. check 财务报告和审定财务报表 ratify 他们叫门,使门 裁决并设定出局代码,在跑者身上没有外壳和其他工具.

唯一的例外是可选的预推钩,它是一个贝壳脚本——它读取了你的git 历史和把 diff 交给当地特工,所以它想要 bash 在你的机器上。 这是可选的 设计 : check 它是权威的,它是完整的没有它.

版本与发布记录

@archigravity/gate 共发布 20 个版本,首次发布于 2026/08/24;过去 12 个月发布了 20 个版本。

版本发布日期距今
1.9.0latest2026/11/035 天前
1.8.02026/11/035 天前
1.7.82026/10/2019 天前
1.7.72026/10/1920 天前
1.7.62026/10/1920 天前
1.7.52026/10/1820 天前

关于 @archigravity/gate 的常见问题

@archigravity/gate 是什么?

ArchiGravity部署大门——在CI进行建筑检查并进行推. 张贴您宣布的片段, 让服务器计算判断结果; 没有秘密, 自己决定不了 .

如何安装 @archigravity/gate?

在项目目录运行 npm install @archigravity/gate,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 archigravity,可以用 npx archigravity 直接运行。

@archigravity/gate 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/archigravity__gate 是否存在。

@archigravity/gate 支持 ESM 还是 CommonJS?

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

@archigravity/gate 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@archigravity/gate 可以商用吗?

@archigravity/gate 使用 SEE LICENSE IN LICENSE.md 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

@archigravity/gate 的下载量有多少?

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

@archigravity/gate 还在维护吗?

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