Rename a repository
Give a repository a new name in its workspace.
/repos/{owner}/{name}/renameNeeds the Admin role. Everything stays with it: git data, issues, pull requests, workflow runs, deployments, secrets and webhooks. Its old address keeps working: web pages, git remotes and API calls redirect to the new one until a repository is made at the old address. The new name must be free in the workspace, including names held by recently deleted repositories.
The repository under its new name. Needs the Admin role (403 otherwise). Refused with 409 when the workspace already has a repository of that name, a recently deleted one included, and with 422 when the name is not valid. The old address redirects. See Rename a repository.
- Authentication: Required. Send an access token as
Authorization: Bearer. - MCP tool:
rename_repo, with the same inputs
Path parameters
Section titled “Path parameters”| Name | Type | Required | Description |
|---|---|---|---|
owner |
string | Yes | The workspace that owns the repository. |
name |
string | Yes | The repository’s name. |
Example request
Section titled “Example request”curl -X POST https://api.g1t.sh/repos/flagon-io/hello/rename \ -H "Authorization: Bearer $G1T_TOKEN"Example response
Section titled “Example response”A successful request answers 200 with:
{ "id": "rep_01m3m5q6p0e2qaw6mmjahk0qrr", "namespace": "flagon-io", "name": "greeter", "description": "A tiny service that says hello.", "is_private": false, "owner_id": "usr_01kkntcg1eeb98j62xjm7eh09p", "default_branch": "main", "fork_of": null, "protected": true, "created_at": "2026-09-28T14:11:52.640Z", "topics": [ "http", "example" ], "website": "https://hello.g1t.page", "archived_at": null}Errors
Section titled “Errors”A failed request answers with one of these statuses and a body like {"error": {"code": "not_found", "message": "Repository not found."}}. See errors.
| Status | Code | When |
|---|---|---|
| 401 | unauthenticated |
A token is required, or the one sent is not valid. |
| 403 | forbidden |
The token is valid but not allowed to do this, such as a member-only change or an agent token outside its repository. |
| 404 | not_found |
It does not exist, or you cannot see it. |
| 409 | conflict |
The request conflicts with the current state. |
| 422 | invalid |
The input is not valid. message says which field and why. |