> ## 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_upload_asset

> Attach a file to a release. Text content only: the body is sent as raw bytes, and the tool has no way to carry binary. GitHub rewrites names with special characters, and refuses a name the release already has rather than replacing it. This call goes to uploads.github.com.

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

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

result = await github.releases_upload_asset.ainvoke({"owner": ..., "repo": ..., "releaseId": ..., "name": ..., "content": ...})
```

<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. |
  | `releaseId` <span className="required" title="required">\*</span> | `integer` | The unique identifier of the release.                                                    |
</div>

## Query parameters

<div className="reference-table">
  | Field                                                        | Type     | Description                                                                                                          |
  | ------------------------------------------------------------ | -------- | -------------------------------------------------------------------------------------------------------------------- |
  | `name` <span className="required" title="required">\*</span> | `string` | The file name of the asset, for example `charter-1.2.0.tar.gz`. GitHub rewrites names containing special characters. |
  | `label`                                                      | `string` | An alternate short description shown in place of the file name on the release page.                                  |
</div>

## Body

<div className="reference-table">
  | Field                                                           | Type     | Description                                                                                                                                                                                                 |
  | --------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | `content` <span className="required" title="required">\*</span> | `string` | The asset's contents, which are sent as the raw body. Text is sent as written; binary content is not expressible here — build the release asset from a text artifact, or upload binaries outside this tool. |
</div>
