---
title: "Edit a repository's properties. Only fields that are set will be changed."
method: PATCH
path: "/repos/{owner}/{repo}"
tags: ["repository"]
---

# Edit a repository's properties. Only fields that are set will be changed.

`PATCH /repos/{owner}/{repo}`

## Path parameters

- `owner` string, required
- `repo` string, required

## Request body

- EditRepoOption — EditRepoOption options when editing a repository's properties
  - `allow_fast_forward_only_merge` boolean — either `true` to allow fast-forward-only merging pull requests, or `false` to prevent fast-forward-only merging.
  - `allow_manual_merge` boolean — either `true` to allow mark pr as merged manually, or `false` to prevent it.
  - `allow_merge_commits` boolean — either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.
  - `allow_merge_update` boolean — either `true` to allow updating pull request branch by merge, or `false` to prevent it.
  - `allow_rebase` boolean — either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.
  - `allow_rebase_explicit` boolean — either `true` to allow rebase with explicit merge commits (--no-ff), or `false` to prevent rebase with explicit merge commits.
  - `allow_rebase_update` boolean — either `true` to allow updating pull request branch by rebase, or `false` to prevent it.
  - `allow_squash_merge` boolean — either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.
  - `archived` boolean — set to `true` to archive this repository.
  - `autodetect_manual_merge` boolean — either `true` to enable AutodetectManualMerge, or `false` to prevent it. Note: In some special cases, misjudgments can occur.
  - `default_allow_maintainer_edit` boolean — set to `true` to allow edits from maintainers by default
  - `default_branch` string — sets the default branch for this repository.
  - `default_delete_branch_after_merge` boolean — set to `true` to delete pr branch after merge by default
  - `default_merge_style` string — set to a merge style to be used by this repository: "merge", "rebase", "rebase-merge", "squash", or "fast-forward-only".
  - `default_update_style` string — set to an update style to be used by this repository: "merge" or "rebase".
  - `description` string — a short description of the repository.
  - `enable_prune` boolean — enable prune - remove obsolete remote-tracking references when mirroring
  - `external_tracker` ExternalTracker — ExternalTracker represents settings for external tracker
    - `external_tracker_format` string — External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index.
    - `external_tracker_regexp_pattern` string — External Issue Tracker issue regular expression
    - `external_tracker_style` string — External Issue Tracker Number Format, either `numeric`, `alphanumeric`, or `regexp`
    - `external_tracker_url` string — URL of external issue tracker.
  - `external_wiki` ExternalWiki — ExternalWiki represents setting for external wiki
    - `external_wiki_url` string — URL of external wiki.
  - `has_actions` boolean — either `true` to enable actions unit, or `false` to disable them.
  - `has_code` boolean — either `true` to enable code for this repository or `false` to disable it.
  - `has_issues` boolean — either `true` to enable issues for this repository or `false` to disable them.
  - `has_packages` boolean — either `true` to enable packages unit, or `false` to disable them.
  - `has_projects` boolean — either `true` to enable project unit, or `false` to disable them.
  - `has_pull_requests` boolean — either `true` to allow pull requests, or `false` to prevent pull request.
  - `has_releases` boolean — either `true` to enable releases unit, or `false` to disable them.
  - `has_wiki` boolean — either `true` to enable the wiki for this repository or `false` to disable it.
  - `ignore_whitespace_conflicts` boolean — either `true` to ignore whitespace for conflicts, or `false` to not ignore whitespace.
  - `internal_tracker` InternalTracker — InternalTracker represents settings for internal tracker
    - `allow_only_contributors_to_track_time` boolean — Let only contributors track time (Built-in issue tracker)
    - `enable_issue_dependencies` boolean — Enable dependencies for issues and pull requests (Built-in issue tracker)
    - `enable_time_tracker` boolean — Enable time tracking (Built-in issue tracker)
  - `mirror_interval` string — set to a string like `8h30m0s` to set the mirror interval time
  - `mirror_password` string — authentication password for the remote repository (mirrors)
  - `mirror_token` string — authentication token for the remote repository (mirrors)
  - `mirror_username` string — authentication username for the remote repository (mirrors)
  - `name` string — name of the repository
  - `private` boolean — either `true` to make the repository private or `false` to make it public. Note: you will get a 422 error if the organization restricts changing repository visibility to organization owners and a non-owner tries to change the value of private.
  - `projects_mode` string — `repo` to only allow repo-level projects, `owner` to only allow owner projects, `all` to allow both.
  - `template` boolean — either `true` to make this repository a template or `false` to make it a normal repository
  - `website` string — a URL with more information about the repository.

## Response `200`

Repository

- Repository — Repository represents a repository
  - `allow_fast_forward_only_merge` boolean
  - `allow_manual_merge` boolean
  - `allow_merge_commits` boolean
  - `allow_merge_update` boolean
  - `allow_rebase` boolean
  - `allow_rebase_explicit` boolean
  - `allow_rebase_update` boolean
  - `allow_squash_merge` boolean
  - `archived` boolean
  - `archived_at` string, date-time
  - `autodetect_manual_merge` boolean
  - `avatar_url` string
  - `branch_count` integer
  - `clone_url` string
  - `created_at` string, date-time
  - `default_allow_maintainer_edit` boolean
  - `default_branch` string
  - `default_delete_branch_after_merge` boolean
  - `default_merge_style` string
  - `default_target_branch` string
  - `default_update_style` string
  - `description` string
  - `empty` boolean
  - `external_tracker` ExternalTracker — ExternalTracker represents settings for external tracker
    - `external_tracker_format` string — External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index.
    - `external_tracker_regexp_pattern` string — External Issue Tracker issue regular expression
    - `external_tracker_style` string — External Issue Tracker Number Format, either `numeric`, `alphanumeric`, or `regexp`
    - `external_tracker_url` string — URL of external issue tracker.
  - `external_wiki` ExternalWiki — ExternalWiki represents setting for external wiki
    - `external_wiki_url` string — URL of external wiki.
  - `fork` boolean
  - `forks_count` integer
  - `full_name` string
  - `has_actions` boolean
  - `has_code` boolean
  - `has_issues` boolean
  - `has_packages` boolean
  - `has_projects` boolean
  - `has_pull_requests` boolean
  - `has_releases` boolean
  - `has_wiki` boolean
  - `html_url` string
  - `id` integer
  - `ignore_whitespace_conflicts` boolean
  - `internal` boolean
  - `internal_tracker` InternalTracker — InternalTracker represents settings for internal tracker
    - `allow_only_contributors_to_track_time` boolean — Let only contributors track time (Built-in issue tracker)
    - `enable_issue_dependencies` boolean — Enable dependencies for issues and pull requests (Built-in issue tracker)
    - `enable_time_tracker` boolean — Enable time tracking (Built-in issue tracker)
  - `language` string
  - `languages_url` string
  - `licenses` string[]
  - `link` string
  - `mirror` boolean
  - `mirror_interval` string
  - `mirror_last_sync_at` string, date-time
  - `mirror_updated` string, date-time
  - `name` string
  - `object_format_name` 'sha1' | 'sha256' — ObjectFormatName of the underlying git repository
  - `open_issues_count` integer
  - `open_pr_counter` integer
  - `original_url` string
  - `owner` User — User represents a user
    - `active` boolean — Is user active
    - `avatar_url` string — URL to the user's avatar
    - `created` string, date-time
    - `description` string — the user's description
    - `email` string, email
    - `followers_count` integer — user counts
    - `following_count` integer
    - `full_name` string — the user's full name
    - `html_url` string — URL to the user's gitea page
    - `id` integer — the user's id
    - `is_admin` boolean — Is the user an administrator
    - `language` string — User locale
    - `last_login` string, date-time
    - `location` string — the user's location
    - `login` string — login of the user, same as `username`
    - `login_name` string — identifier of the user, provided by the external authenticator (if configured)
    - `prohibit_login` boolean — Is user login prohibited
    - `restricted` boolean — Is user restricted
    - `source_id` integer — The ID of the user's Authentication Source
    - `starred_repos_count` integer
    - `visibility` 'public' | 'limited' | 'private' — User visibility level option: public, limited, private
    - `website` string — the user's website
  - `parent` Repository — recursive
  - `permissions` Permission — Permission represents a set of permissions
    - `admin` boolean
    - `pull` boolean
    - `push` boolean
  - `private` boolean
  - `projects_mode` string
  - `release_counter` integer
  - `repo_transfer` RepoTransfer — RepoTransfer represents a pending repo transfer
    - `doer` User — User represents a user
      - `active` boolean — Is user active
      - `avatar_url` string — URL to the user's avatar
      - `created` string, date-time
      - `description` string — the user's description
      - `email` string, email
      - `followers_count` integer — user counts
      - `following_count` integer
      - `full_name` string — the user's full name
      - `html_url` string — URL to the user's gitea page
      - `id` integer — the user's id
      - `is_admin` boolean — Is the user an administrator
      - `language` string — User locale
      - `last_login` string, date-time
      - `location` string — the user's location
      - `login` string — login of the user, same as `username`
      - `login_name` string — identifier of the user, provided by the external authenticator (if configured)
      - `prohibit_login` boolean — Is user login prohibited
      - `restricted` boolean — Is user restricted
      - `source_id` integer — The ID of the user's Authentication Source
      - `starred_repos_count` integer
      - `visibility` 'public' | 'limited' | 'private' — User visibility level option: public, limited, private
      - `website` string — the user's website
    - `recipient` User — User represents a user
      - `active` boolean — Is user active
      - `avatar_url` string — URL to the user's avatar
      - `created` string, date-time
      - `description` string — the user's description
      - `email` string, email
      - `followers_count` integer — user counts
      - `following_count` integer
      - `full_name` string — the user's full name
      - `html_url` string — URL to the user's gitea page
      - `id` integer — the user's id
      - `is_admin` boolean — Is the user an administrator
      - `language` string — User locale
      - `last_login` string, date-time
      - `location` string — the user's location
      - `login` string — login of the user, same as `username`
      - `login_name` string — identifier of the user, provided by the external authenticator (if configured)
      - `prohibit_login` boolean — Is user login prohibited
      - `restricted` boolean — Is user restricted
      - `source_id` integer — The ID of the user's Authentication Source
      - `starred_repos_count` integer
      - `visibility` 'public' | 'limited' | 'private' — User visibility level option: public, limited, private
      - `website` string — the user's website
    - `teams` Team[]
      - `can_create_org_repo` boolean — Whether the team can create repositories in the organization
      - `description` string — The description of the team
      - `id` integer — The unique identifier of the team
      - `includes_all_repositories` boolean — Whether the team has access to all repositories in the organization
      - `name` string — The name of the team
      - `organization` Organization — Organization represents an organization
        - `avatar_url` string — The URL of the organization's avatar
        - `description` string — The description of the organization
        - `email` string — The email address of the organization
        - `full_name` string — The full display name of the organization
        - `id` integer — The unique identifier of the organization
        - `location` string — The location of the organization
        - `name` string — The name of the organization
        - `repo_admin_change_team_access` boolean — Whether repository administrators can change team access
        - `username` string — username of the organization deprecated
        - `visibility` 'public' | 'limited' | 'private' — The visibility level of the organization (public, limited, private)
        - `website` string — The website URL of the organization
      - `permission` 'none' | 'read' | 'write' | 'admin' | 'owner'
      - `units` string[] — Deprecated: This variable should be replaced by UnitsMap and will be dropped in later versions.
      - `units_map` object
      - `visibility` 'public' | 'limited' | 'private' — Team visibility within the organization. "private" teams are only listable by members and org owners; "limited" teams are listable by any organization member; "public" teams are listable by any signed-in user.
  - `size` integer
  - `ssh_url` string
  - `stars_count` integer
  - `template` boolean
  - `topics` string[]
  - `updated_at` string, date-time
  - `url` string
  - `watchers_count` integer
  - `website` string

## Other responses

- `403` — APIForbiddenError is a forbidden error response
- `404` — APINotFound is a not found empty response
- `422` — APIValidationError is error format response related to input validation

---

[API](https://skmtc.net/gitea/apis/gitea-api.md) · [All operations](https://skmtc.net/gitea/apis/gitea-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gitea/gitea-api/revisions/350de506cefa/schema)
