> ## Documentation Index
> Fetch the complete documentation index at: https://docs.r28.ai/charter/llms.txt
> Use this file to discover all available pages before exploring further.

# releases_create

> Publish a release, creating its tag if it does not exist. Set `generate_release_notes` to have GitHub write the changelog from the merged pull requests since the last release. `make_latest` is a string — 'true', 'false' or 'legacy' — not a boolean.

<div className="tool-route"><span className="tool-row-method" data-method="POST">POST</span><code>{"https://api.github.com/repos/{owner}/{repo}/releases"}</code></div>

```python github_releases_create.py theme={null}
from charter.packs import github

result = await github.releases_create.ainvoke({"owner": ..., "repo": ..., "tagName": ...})
```

<Note>
  Requires `repo`, `read:user`.
</Note>

## Path parameters

<div className="reference-table">
  | Field                                                         | Type     | Description                                                                              |
  | ------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------- |
  | `owner` <span className="required" title="required">\*</span> | `string` | The account owner of the repository. The name is not case sensitive.                     |
  | `repo` <span className="required" title="required">\*</span>  | `string` | The name of the repository without the `.git` extension. The name is not case sensitive. |
</div>

## Body

<div className="reference-table">
  | Field                                                           | Type                                                            | Description                                                                                                                                                                                                                                                                                            |
  | --------------------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
  | `tagName` <span className="required" title="required">\*</span> | `string`                                                        | The name of the tag.                                                                                                                                                                                                                                                                                   |
  | `targetCommitish`                                               | `string`                                                        | Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Absent, the repository's default branch.                                                                                                       |
  | `name`                                                          | `string`                                                        | The name of the release.                                                                                                                                                                                                                                                                               |
  | `body`                                                          | `string`                                                        | Text describing the contents of the tag. With `generate_release_notes` set, this is placed above the generated notes rather than replacing them.                                                                                                                                                       |
  | `draft`                                                         | `boolean`                                                       | `true` to create a draft (unpublished) release, `false` to create a published one. GitHub publishes when this is absent.                                                                                                                                                                               |
  | `prerelease`                                                    | `boolean`                                                       | `true` to identify the release as a prerelease. A prerelease is never returned by `releases_get_latest`.                                                                                                                                                                                               |
  | `discussionCategoryName`                                        | `string`                                                        | If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository.                                                                                                                                         |
  | `generateReleaseNotes`                                          | `boolean`                                                       | Whether to automatically generate the name and body for this release from the merged pull requests since the last one. If `name` is specified, the specified name will be used; otherwise, a name will be automatically generated.                                                                     |
  | `makeLatest`                                                    | [MakeLatest](/charter/charter/packs/github/releases/objects#makelatest) | Whether this release should be set as the latest release for the repository — a string, not a boolean. Drafts and prereleases cannot be set as latest. `legacy` determines the latest release from the creation date and the higher semantic version. GitHub uses 'true' for newly published releases. |
</div>
