> 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.eyJpc3MiOiJmZXJuLWRvY3M6YnVpbGR3aXRoZmVybi5jb20iLCJqdGkiOiJmNWY0OGExNi1mMTczLTRmMDYtYjM2Mi0wZGJkMWViMjVlOTciLCJleHAiOjE3NzgzNjQ4MzIsImlhdCI6MTc3ODM2NDUzMn0._WGQFYFgOkz82C2hRtotig95z0uEvMeY7XgZj85KK6Y
>
> 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.

# 发布为 Go 模块

> 学习如何将 Fern 生成的 Go SDK 发布到 pkg.go.dev。配置 generators.yml 并发布版本化的 Go 模块。

将您面向公众的 Fern Go SDK 发布到
[pkg.go.dev](https://pkg.go.dev/)。

<Info>
  本页面假设您已具备：

  * 已初始化的 `fern` 文件夹、Go SDK 的 GitHub 仓库，以及 `generators.yml` 中的 Go 生成器组。请参阅[生成 SDK (Go)](/learn/sdks/generators/go/quickstart)。
</Info>

<Frame>
  <img src="https://files.buildwithfern.com/fern.docs.buildwithfern.com/learn/7a3d5518064057b524561b3a039edcfbd77d41a31ec12ffbcd53a962255a20d3/products/sdks/generators/go/assets/go-package.png" alt="Versioned package published on Pkgsite" />
</Frame>

## 要求

当您推送语义版本标签到仓库且仓库满足以下要求时，Go SDK 会自动发布到 [pkg.go.dev](https://pkg.go.dev/)。无需专门的 CI。

您的仓库必须具备：

* 公开可见性
* [已批准的许可证](https://pkg.go.dev/license-policy)，例如 [MIT](https://opensource.org/license/mit) 或 [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0)
* `go.mod` 中的有效模块路径，该路径决定您的发布 URL。例如，`github.com/your-org/your-sdk` 发布到 `https://pkg.go.dev/github.com/your-org/your-sdk`。如果您的模块路径包含主版本后缀如 `/v2`，您的 SDK 将发布到该版本化 URL (`https://pkg.go.dev/github.com/your-org/your-sdk/v2`)。

## 配置 `generators.yml`

<Steps>
  <Step title="配置 `output` 位置">
    Go 通过 Git 仓库发布，所以删除自动生成的
    `output` 和 `config` 属性。相反，添加您
    GitHub 仓库的路径：

    ```yaml {6-7}
    groups: 
      go-sdk:
        generators:
          - name: fernapi/fern-go-sdk
            version: 1.39.2
            github:
              repository: devalog/company-go

    ```
  </Step>
</Steps>

## 发布到 pkg.go.dev

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

<Steps>
  <Step title="生成发布版本">
    重新生成您的 SDK 并将其发布到 pkg.go.dev：

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

    本地机器输出将验证发布版本已推送到您的
    仓库并标记为您指定的版本。
  </Step>

  <Step title="在 pkg.go.dev 上验证">
    一旦推送语义版本标签，pkg.go.dev 将自动索引您的包。导航至 `https://pkg.go.dev/<go-module-path-in-go.mod>` 来验证您的 SDK 已发布。

    <Tip>
      发布新版本后，pkg.go.dev
      可能需要几分钟时间来索引并显示更新。您还可以在
      `https://proxy.golang.org/<go-module-path-in-go.mod>/@v/list` 检查 Go
      代理是否已索引您的模块。pkg.go.dev
      索引通常在代理获取后的 5-15 分钟内完成。

      更多信息请参阅 Go 关于[添加包](https://pkg.go.dev/about#adding-a-package)的文档。
    </Tip>
  </Step>
</Steps>