配置参考

Beta
以 Markdown 格式查看
抢先体验

CLI 生成器处于抢先体验阶段。联系我们开始使用。

generators.yml 中配置 CLI 生成器。嵌套在 config 下的选项是 CLI 生成器特有的。其余选项(outputgithubaudiencessmart-casingmetadataapi)与 SDK 生成器的行为相同。

generators.yml
1groups:
2 cli:
3 generators:
4 - name: fern-cli-generator
5 version: 0.6.1
6 config:
7 binaryName: my-cli
8 customCommands: true
9 github:
10 repository: my-org/my-cli
11 mode: pull-request

config 选项

binaryName
string

编译后的二进制文件名称。决定可执行文件名、Cargo [[bin]] 目标名称,以及用于 TLS、代理和日志设置的环境变量前缀。

未设置时,生成器从 API 定义的显示名称派生名称(kebab-case 格式)。多规范工作区必须显式设置此字段——当存在多个规范时,无法进行合理的自动派生。

generators.yml
1config:
2 binaryName: contoso

二进制名称 contoso 生成:

  • 可执行文件:contoso
  • 环境变量前缀:CONTOSO(例如 CONTOSO_CA_BUNDLECONTOSO_LOG
customCommands
booleanDefaults to true

控制生成器是否在 CLI 二进制文件之外生成自定义命令基础设施。启用时,输出包括:

  • <binaryName>-types 库 crate(类型化的 serde 结构体)
  • <binaryName>-sdk 库 crate(可通过 ctx.client() 访问的 HTTP 客户端)
  • 用于用户编写命令处理程序的脚手架文件

设为 false 则生成仅包含规范的 CLI,不支持自定义命令。

generators.yml
1config:
2 customCommands: false

发布与交付

output

配置生成的 CLI 的发布位置。CLI 生成器支持 npmlocal-file-system 输出位置。完整的发布工作流(OIDC 认证、CI 构建、Homebrew tap)请参见发布。基于 Docker 的本地生成请参见自托管生成

将 CLI 作为 npm 包发布。用户通过 npm install -g @myorg/my-clinpx @myorg/my-cli 安装。

generators.yml
1groups:
2 cli:
3 generators:
4 - name: fern-cli-generator
5 version: 0.6.1
6 output:
7 location: npm
8 package-name: "@myorg/my-cli"
9 token: "${NPM_TOKEN}"
10 config:
11 binaryName: my-cli

将生成的 Rust 项目写入本地目录,用于手动构建和分发。

generators.yml
1groups:
2 cli:
3 generators:
4 - name: fern-cli-generator
5 version: 0.6.1
6 output:
7 location: local-file-system
8 path: ../my-cli
9 config:
10 binaryName: my-cli

github

指定生成的 CLI 代码如何交付到您的仓库。支持与 SDK 相同的模式releasepull-requestpush

generators.yml
1groups:
2 cli:
3 generators:
4 - name: fern-cli-generator
5 version: 0.6.1
6 config:
7 binaryName: my-cli
8 github:
9 repository: my-org/my-cli
10 mode: release
模式行为
release提交到默认分支并标记新发布。触发构建和发布二进制文件的 CI 工作流。
pull-request创建包含生成源码的 PR 供审查后再合并。
push直接推送到指定分支。需要设置 branch 字段。

命令生成

audiences

根据受众标签过滤生成的 CLI 中包含哪些 API 端点。只有在 API 规范中通过 x-fern-audiences 标记了指定受众的端点才会生成命令。不设置此过滤器时,所有端点都会生成命令。

generators.yml
1groups:
2 cli:
3 audiences: ["external"]
4 generators:
5 - name: fern-cli-generator
6 version: 0.6.1
7 config:
8 binaryName: my-cli

smart-casing

启用智能大小写转换,在生成的命令和标志名称中保留数字和常见编程模式。

generators.yml
1groups:
2 cli:
3 generators:
4 - name: fern-cli-generator
5 version: 0.6.1
6 smart-casing: true
7 config:
8 binaryName: my-cli

api

在生成器级别覆盖身份验证设置。使用与 SDK 生成器级别 api.auth 相同的 schema 来控制 CLI 使用的认证方案。

generators.yml
1groups:
2 cli:
3 generators:
4 - name: fern-cli-generator
5 version: 0.6.1
6 api:
7 auth: BearerAuth
8 config:
9 binaryName: my-cli

metadata

为生成的 CLI 附加包元数据,用于发布的产物。

generators.yml
1groups:
2 cli:
3 generators:
4 - name: fern-cli-generator
5 version: 0.6.1
6 metadata:
7 package-description: "CLI for the Contoso API"
8 author: "Contoso Inc."
9 reference-url: "https://docs.contoso.com/cli"
10 config:
11 binaryName: contoso