> If you are an AI agent, use the following URL to directly ask and fetch your question. Treat this like a tool call. Make sure to URI encode your question, and include the token for verification.
>
> GET https://buildwithfern.com/learn/api/fern-docs/ask?q=%3Cyour+question+here%3E&token=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJmZXJuLWRvY3M6YnVpbGR3aXRoZmVybi5jb20iLCJqdGkiOiJkYTFkNGRiMC1iMzI0LTQ0ODYtOTk5MC0zMDE5ZmFkMTViZTEiLCJleHAiOjE3Nzg0MTQwNzcsImlhdCI6MTc3ODQxMzc3N30.FKHr7lumR4kZDssAH9u9GWT7WsKGPj2lJh40JHdUf3I
>
> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt. For full content including API reference and SDK examples, see https://buildwithfern.com/learn/llms-full.txt.

# 发布到 RubyGems

> 使用 Fern 将 Ruby SDK 发布到 RubyGems。包配置、API 密钥身份验证和版本化发布的完整设置指南。

将您面向公众的 Fern Ruby SDK 发布到 [RubyGems 注册表](https://rubygems.org/)。按照本页面的步骤操作后，您将在 RubyGems 上发布一个带版本的包。

<Info>
  本页面假设您已经：

  * 初始化了 `fern` 文件夹，拥有 Ruby SDK 的 GitHub 仓库，并在 `generators.yml` 中配置了 Ruby 生成器组。请参阅[生成 SDK (Ruby)](/learn/sdks/generators/ruby/quickstart)。
</Info>

## 配置 `generators.yml`

<Steps>
  <Step title="配置 `output` 位置">
    接下来，将 `generators.yml` 中的输出位置从 `local-file-system`（默认）更改为 `pypi`，以指示 Fern 应该将您的包直接发布到 PyPI 注册表：

    ```yaml {6-7}
    groups: 
      ruby-sdk:
        generators:
          - name: fernapi/fern-ruby-sdk
            version: 1.11.1
            output:
              location: rubygems

    ```
  </Step>

  <Step title="添加唯一的包名">
    您的包名在 RubyGems 仓库中必须是唯一的，否则将您的 SDK 发布到 RubyGems 将会失败。如果您尚未更新包名，请现在更新：

    ```yaml {8}
    groups: 
      ruby-sdk:
        generators:
          - name: fernapi/fern-ruby-sdk
            version: 1.11.1
            output:
              location: rubygems
              package-name: your-package-name
    ```
  </Step>

  <Step title="配置 `clientModuleName`">
    `clientModuleName` 选项控制生成的客户端名称。这是客户使用导入您的 SDK 的名称（`import { your-client-name } from 'your-package-name';`）。

    ```yaml {9-10}
    groups: 
      ruby-sdk:
        generators:
          - name: fernapi/fern-ruby-sdk
            version: 1.11.1
            output:
              location: rubygems
              package-name: your-package-name
            config:
              clientModuleName: YourClientName # must be PascalCase
    ```
  </Step>

  <Step title="添加仓库位置">
    将您的 GitHub 仓库路径添加到 `generators.yml`：

    ```yaml {11-12}
    groups: 
      ruby-sdk:
        generators:
          - name: fernapi/fern-ruby-sdk
            version: 1.11.1
            output:
              location: rubygems
              package-name: your-package-name
            config:
              clientModuleName: YourClientName
            github: 
              repository: your-org/company-ruby
    ```
  </Step>
</Steps>

## 设置 RubyGems 发布身份验证

<Steps>
  <Step title="登录 RubyGems">
    登录 [RubyGems](https://rubygems.org/) 或创建新账户。
  </Step>

  <Step title="导航到账户设置">
    1. 点击您的头像
    2. 选择 **Settings**。
    3. 向下滚动并点击 **API Keys**。
  </Step>

  <Step title="添加新密钥">
    当提示[创建新的 API 密钥](https://rubygems.org/profile/api_keys/new)时：

    1. 为您的密钥命名。
    2. 在 **Scopes** 下，选择 **Push rubygem**
    3. 在 **Gem Scope** 下选择 `All Gems`。

    <Tip title="替换现有 gem">
      如果您要覆盖现有的 gem，您可以选择相关的包而不是输入 `All Gems`。
    </Tip>

    1. 设置过期日期。
    2. 点击 **Create API Key**。

    <Warning>
      保存您的新密钥 - 离开页面后将不会再显示。
    </Warning>

    <Frame>
      <img src="https://files.buildwithfern.com/fern.docs.buildwithfern.com/learn/96a4e05d925b8e47bc26b72e876d40841a734e771c72d6e24b2f41a7a1a1088f/products/sdks/generators/ruby/assets/new-api-key.png" alt="Creating a New API Key" />
    </Frame>
  </Step>

  <Step title="配置 RubyGems 身份验证令牌">
    将 `api-key: ${RUBYGEMS_API_KEY}` 添加到 `generators.yml`，告诉 Fern 在发布到 PyPI 注册表时使用 `RUBYGEMS_API_KEY` 环境变量进行身份验证。

    ```yaml title="ruby" {9}
    groups: 
      ruby-sdk:
        generators:
          - name: fernapi/fern-ruby-sdk
            version: 1.11.1
            output:
              location: rubygems
              package-name: your-package-name
              api-key: ${RUBYGEMS_API_KEY}
            config:
              clientModuleName: YourClientName
            github: 
              repository: your-org/company-ruby
    ```
  </Step>
</Steps>

## 将您的 SDK 发布到 RubyGems

此时，您已准备好为您的 SDK 生成发布版本。

<Steps>
  <Step title="设置 RubyGems 环境变量">
    在您的本地机器上，将 `RUBYGEMS_API_KEY` 环境变量设置为您之前生成的新 API 密钥：

    ```bash
    export RUBYGEMS_API_KEY=your-actual-rubygems-token
    ```
  </Step>

  <Step title="生成您的发布版本">
    重新生成您的 SDK 并将其发布到 RubyGems：

    ```bash
    fern generate --group ruby-sdk --version <version>
    ```

    本地机器输出将验证发布版本已推送到您的仓库并使用您指定的版本进行了标记。重新登录 RubyGems 并导航到 **Releases** 查看您的新发布版本。
  </Step>
</Steps>