provider repos PUT /repos/{owner}/{repo}/contents/{path}
@utdk/github /repos/{owner}/{repo}/contents/{path}
Create or update file contents
Creates a new file or replaces an existing file in a repository. > [!NOTE] > If you use this endpoint and the "[Delete a file](https://docs.github.com/rest/repos/contents/#delete-a-file)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The `workflow` scope is also required in order to modify files in the `.github/workflows` directory.
owner path required
The account owner of the repository. The name is not case sensitive.
string
repo path required
The name of the repository without the `.git` extension. The name is not case sensitive.
string
path path required
path parameter
string

Try it

Authentication
Configure credentials for GitHub v3 REST API
repos.createOrUpdateFileContents
PUT/repos/{owner}/{repo}/contents/{path}
Creates a new file or replaces an existing file in a repository. > [!NOTE] > If you use this endpoint and the "[Delete a file](https://docs.github.com/rest/repos/contents/#delete-a-file)" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead. OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. The `workflow` scope is also required in order to modify files in the `.github/workflows` directory.

Parameters

required

The account owner of the repository. The name is not case sensitive.

required

The name of the repository without the `.git` extension. The name is not case sensitive.

required

path parameter

Input

required

The commit message.

required

The new file content, using Base64 encoding.

**Required if you are updating a file**. The blob SHA of the file being replaced.

The branch name. Default: the repository’s default branch.

The person that committed the file. Default: the authenticated user.

The author of the file. Default: The `committer` or the authenticated user if you omit `committer`.

Configure credentials above to enable sending.

Code snippet
Updates live as you fill in the form above.

TypeScript

import github from '@utdk/github';

await github.repos.createOrUpdateFileContents()