GoLive开发者指南:用Capabilities与Links为你的应用扩展新供应商支持(含代码实战)

发布时间:2026/10/10 17:24:25
GoLive开发者指南:用Capabilities与Links为你的应用扩展新供应商支持(含代码实战) GoLive开发者指南用Capabilities与Links为你的应用扩展新供应商支持含代码实战【免费下载链接】golive-skillTake your agent-built product live: hosting, database, domain, email, payments — on your own accounts. Open-source Agent Skill zero-dependency Node CLI: detect → plan → approve → apply → verify. No GoLive account, backend or telemetry.项目地址: https://gitcode.com/gh_mirrors/go/golive-skillGoLive是一个开源 Agent Skill 零依赖 Node CLI帮助你把 AI 代理构建的应用真正上线托管、数据库、域名、邮箱、支付——全部跑在你自己的账号上无需 GoLive 账号、后端或遥测。本文面向想为 GoLive 集成新供应商Provider的开发者带你理解Capabilities能力与Links跨供应商链路这两块核心扩展机制并给出从 0 到 1 添加供应商支持的代码实战步骤。为什么 GoLive 加新供应商只需一个适配器传统做法里每接入一个支付商就要为每种托管环境重写一套支付 → 托管环境变量的对接代码组合爆炸。GoLive 用三层设计解掉了这个问题层角色一句话理解Adapter适配器对接单个供应商会说这个供应商的语言并声明自己有哪些能力Capabilities能力供应商暴露的标准接口如 EnvStore、WebhookRegistry、DnsZone 等所有能力定义在 src/core/types.tsLinks链路跨供应商粘合层只面向能力编程写一次即可复用到任意供应商组合正如 src/core/types.ts 顶部的设计注释所说一个 LINK 是针对能力写一次的跨供应商粘合例如支付 webhook → 托管环境变量 托管 URL所以新增供应商永远不需要为每种两两组合重写配方。完整心智模型见 docs/ARCHITECTURE.md 的 Adapters, capabilities and links 一节docs/ARCHITECTURE.md#L136-L143。全景图7 条轴、3 个注册表、1 个执行流程GoLive 把上线拆成 7 条轴Axishosting、db、auth、payments、email、dns、monitoring定义见 src/core/types.ts#L16-L17。每条轴可以独立选择供应商彼此自由组合。注册中心在 src/registry.tssrc/adapters/ → ADAPTERS 供应商适配器 src/links/ → LINKS 跨供应商链路按规划顺序排列 src/checks/ → CHECKS 对真实系统的只读验证执行流程固定为detect → plan → approve → apply → verifydocs/ARCHITECTURE.md#L10-L12。你的新供应商接入后自动融入这条流水线不需要改主流程。能力查找通过adapterFor/cap两个小工具函数完成实现在 src/core/caps.tscap(ctx, payments, webhooks) // 取 payments 轴供应商的 webhook 能力实战三步接入一个新供应商以下示例假设你要接入一个虚构的托管商myhosthosting 轴。步骤 1编写 Adapter声明它支持的 Capabilities一个 Adapter 的最小契约在 src/core/types.ts#L116-L126id、title、axes、automated、auth、capabilities。骨架代码// src/adapters/myhost.ts import type { Adapter } from ../core/types.js; export const myhostAdapter: Adapter { id: myhost, title: MyHost, axes: [hosting], automated: true, async auth(ctx) { // 检查登录状态CLI 登录或环境变量 token返回 { ok, via, howToFix } return { ok: Boolean(ctx.envToken(MYHOST_TOKEN)), via: MYHOST_TOKEN env }; }, capabilities: { project: { /* ProjectLinker选择/创建项目 */ }, env: { /* EnvStorelistNames / set / canSet */ }, url: { /* PublicUrlget 各目标的公网 URL */ }, deploy: { /* Deployerdeploy 并回报 provider 自己的部署 id */ }, }, };关键原则来自代码注释与 docs/ARCHITECTURE.md#L145-L155能力宁缺勿假供应商读不回的数据就返回null或不暴露该能力GoLive 会显式说明原因而不是猜。密钥只在传输边界揭示永远放进Secret包装器见 docs/ARCHITECTURE.md#L223-L229。然后把适配器登记进 src/adapters/index.ts#L17 的ADAPTERS数组注册即生效——这正是 src/registry.ts#L2-L3 注释里说的加一个供应商 加一个 adapter 文件 在这里列一下links 和 checks 通过 capabilities 自动发现它。步骤 2写 Link只面向能力编程Link 是 src/core/plan.ts#L42-L47 定义的接口plan(ctx)返回步骤Steps、人工交接项Handoffs或null不适用时静默退出。以监控链路 src/links/analytics.ts 为模板你可以看到标准姿势// 1. 只查能力不认供应商名字 const r await ready(ctx, monitoring, project); const host await ready(ctx, hosting, env); // 2. 能力缺失时降级为人工交接handoff而不是报错 if (!host) { for (const target of ctx.config.targets) handoffs.push(envHandoff(ctx, adapter, mapped, target)); }所有 Link 按规划顺序登记在 src/links/all.ts#L36。你的新供应商只要能提供outputs/webhooks/sendingDomain等能力现有的payments、email、analytics等链路会直接复用——这是 Capabilities 设计的核心红利。⚠️ 注意顺序约束accounts 必须在最前重置每轮规划缓存所有写 env 的 link 必须在 deploy 之前src/links/all.ts#L22-L34。步骤 3加 Check用真实读取证明真的生效了每个 Check 由applies(ctx)run(ctx)组成产出pass/fail/warn/skip四种明确结论src/core/types.ts#L810-L817。以 src/checks/db-connection.ts 为例applies: (ctx) Boolean(cap(ctx, db, dbConnection)), async run(ctx) { const connection cap(ctx, db, dbConnection); // 只读探测证据全部无密钥 }两个新手常踩的坑skip ≠ pass。供应商不可读就是 skip绝不能用2xx 响应冒充验证成功参见 PostHog/Sentry 的 ingest 检查设计src/links/sentry.ts#L29-L31。注册进 src/checks/index.ts 引用的ALL_CHECKS后即被golive verify自动调度。无法自动化的供应商加入 GUIDED 清单如果供应商没有 API 或 CLI不用写完整适配器——加入引导清单 src/adapters/guided.ts#L15-L46 即可{ id: myprovider, title: MyProvider, axes: [payments] },此时 GoLive 会走guided路径代理引导人工操作但仍用 check 从外部验证结果流程见 skills/golive/references/guided.md。验证你的改动不需要真实账号按 CONTRIBUTING.md 的本地开发规范Node 24 pnpmpnpm install pnpm vitest run pnpm tsc --noEmit pnpm build所有测试使用模拟响应test/fakes.ts、test/helpers.ts禁止在测试中访问真实供应商。行为变更需要基于 mock 的回归测试新供应商在完整工作流拿到真实验证证据前都标注为experimentalCONTRIBUTING.md#L61-L62。常见问题 FAQQ新能力该放 Adapter 还是 LinkA单一供应商的读/写操作放 Adapter 的 capability两个及以上供应商之间的组合逻辑支付密钥 → 托管环境变量放 Link。Q供应商 API 不支持回读部署状态怎么办A不暴露对应能力如 Vercel 没有release能力GoLive 会跳过该步骤并说明原因而不是盲写docs/ARCHITECTURE.md#L129-L134。Q写操作的安全边界在哪A一切写操作必须进入 Plan、经人类按 plan id 批准后由apply执行DNS 写、删除、live 支付各有独立确认门docs/ARCHITECTURE.md#L182-L189。你的 Link 中每一步都要声明risk。延伸阅读架构总览docs/ARCHITECTURE.md各供应商当前支持范围与限制docs/PROVIDERS.md全部类型契约实现的法律src/core/types.ts现有链路总目录src/links/all.ts贡献指南与测试规范CONTRIBUTING.md可安装的技能说明与供应商参考skills/golive/SKILL.md【免费下载链接】golive-skillTake your agent-built product live: hosting, database, domain, email, payments — on your own accounts. Open-source Agent Skill zero-dependency Node CLI: detect → plan → approve → apply → verify. No GoLive account, backend or telemetry.项目地址: https://gitcode.com/gh_mirrors/go/golive-skill创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询