> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://learning.postman.com/llms.txt. For full content including API reference and SDK examples, see https://learning.postman.com/llms-full.txt.

# Publish Go SDKs automatically

You can publish SDKs generated in Postman for Go by pushing semantic version tags through your GitHub release workflow. Go has no central package registry. Published versions are discovered from your Git repository by the Go module ecosystem.

You can also publish manually from your local machine. To learn more, see [Publish Go SDKs generated in Postman](/docs/sdk-generator/publish/go-manual/).

To publish your SDKs automatically, use the release workflow that creates SemVer Git tags.

## Prerequisites

* The module path in `go.mod` matches the repository import path (for example, `github.com/<org>/<repo>`). A mismatch makes the module unfetchable.
* The repository is public. The public module proxy and pkg.go.dev serve public repositories only.
* Tags are valid semantic versions prefixed with `v` (for example, `v1.0.0`). For major version 2+, the major appears in both the module path (`.../v2`) and the tag (`v2.0.0`).

## Publish automatically with GitHub releases

The release workflow creates a SemVer Git tag for your SDK. That tag becomes the published version in the Go module ecosystem.

No additional publishing secret is required. The workflow uses the built-in `GITHUB_TOKEN` value.

Discovery happens lazily: when someone first fetches your module version, the [Go module proxy](https://proxy.golang.org) and [pkg.go.dev](https://pkg.go.dev) index it on demand.

For private repositories, configure consumers with `GOPRIVATE`. Private modules aren't served by the public proxy.