{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the repository."
    },
    "description": {
      "type": "string",
      "description": "A short description of the repository."
    },
    "homepage": {
      "type": "string",
      "description": "A URL with more information about the repository."
    },
    "private": {
      "type": "boolean",
      "description": "Either `true` to make the repository private or `false` to make it public. Default: `false`.  \n**Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://docs.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private.",
      "default": false
    },
    "visibility": {
      "type": "string",
      "description": "The visibility of the repository.",
      "enum": [
        "public",
        "private"
      ]
    },
    "security_and_analysis": {
      "type": [
        "object",
        "null"
      ],
      "description": "Specify which security and analysis features to enable or disable for the repository.\n\nTo use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n\nFor example, to enable GitHub Advanced Security, use this data in the body of the `PATCH` request:\n`{ \"security_and_analysis\": {\"advanced_security\": { \"status\": \"enabled\" } } }`.\n\nYou can check which security and analysis features are currently enabled by using a `GET /repos/{owner}/{repo}` request.",
      "properties": {
        "advanced_security": {
          "type": "object",
          "description": "Use the `status` property to enable or disable GitHub Advanced Security for this repository.\nFor more information, see \"[About GitHub Advanced\nSecurity](/github/getting-started-with-github/learning-about-github/about-github-advanced-security).\"\n\nFor standalone Code Scanning or Secret Protection products, this parameter cannot be used.",
          "properties": {
            "status": {
              "type": "string",
              "description": "Can be `enabled` or `disabled`."
            }
          }
        },
        "code_security": {
          "type": "object",
          "description": "Use the `status` property to enable or disable GitHub Code Security for this repository.",
          "properties": {
            "status": {
              "type": "string",
              "description": "Can be `enabled` or `disabled`."
            }
          }
        },
        "secret_scanning": {
          "type": "object",
          "description": "Use the `status` property to enable or disable secret scanning for this repository. For more information, see \"[About secret scanning](/code-security/secret-security/about-secret-scanning).\"",
          "properties": {
            "status": {
              "type": "string",
              "description": "Can be `enabled` or `disabled`."
            }
          }
        },
        "secret_scanning_push_protection": {
          "type": "object",
          "description": "Use the `status` property to enable or disable secret scanning push protection for this repository. For more information, see \"[Protecting pushes with secret scanning](/code-security/secret-scanning/protecting-pushes-with-secret-scanning).\"",
          "properties": {
            "status": {
              "type": "string",
              "description": "Can be `enabled` or `disabled`."
            }
          }
        },
        "secret_scanning_ai_detection": {
          "type": "object",
          "description": "Use the `status` property to enable or disable secret scanning AI detection for this repository. For more information, see \"[Responsible detection of generic secrets with AI](https://docs.github.com/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/generic-secret-detection/responsible-ai-generic-secrets).\"",
          "properties": {
            "status": {
              "type": "string",
              "description": "Can be `enabled` or `disabled`."
            }
          }
        },
        "secret_scanning_non_provider_patterns": {
          "type": "object",
          "description": "Use the `status` property to enable or disable secret scanning non-provider patterns for this repository. For more information, see \"[Supported secret scanning patterns](/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets).\"",
          "properties": {
            "status": {
              "type": "string",
              "description": "Can be `enabled` or `disabled`."
            }
          }
        },
        "secret_scanning_delegated_alert_dismissal": {
          "type": "object",
          "description": "Use the `status` property to enable or disable secret scanning delegated alert dismissal for this repository.",
          "properties": {
            "status": {
              "type": "string",
              "description": "Can be `enabled` or `disabled`."
            }
          }
        },
        "secret_scanning_delegated_bypass": {
          "type": "object",
          "description": "Use the `status` property to enable or disable secret scanning delegated bypass for this repository.",
          "properties": {
            "status": {
              "type": "string",
              "description": "Can be `enabled` or `disabled`."
            }
          }
        },
        "secret_scanning_delegated_bypass_options": {
          "type": "object",
          "description": "Feature options for secret scanning delegated bypass.\nThis object is only honored when `security_and_analysis.secret_scanning_delegated_bypass.status` is set to `enabled`.\nYou can send this object in the same request as `secret_scanning_delegated_bypass`, or update just the options in a separate request.",
          "properties": {
            "reviewers": {
              "type": "array",
              "description": "The bypass reviewers for secret scanning delegated bypass.\nIf you omit this field, the existing set of reviewers is unchanged.",
              "items": {
                "type": "object",
                "required": [
                  "reviewer_id",
                  "reviewer_type"
                ],
                "properties": {
                  "reviewer_id": {
                    "type": "integer",
                    "description": "The ID of the team or role selected as a bypass reviewer"
                  },
                  "reviewer_type": {
                    "type": "string",
                    "description": "The type of the bypass reviewer",
                    "enum": [
                      "TEAM",
                      "ROLE"
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "has_issues": {
      "type": "boolean",
      "description": "Either `true` to enable issues for this repository or `false` to disable them.",
      "default": true
    },
    "has_projects": {
      "type": "boolean",
      "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.",
      "default": true
    },
    "has_wiki": {
      "type": "boolean",
      "description": "Either `true` to enable the wiki for this repository or `false` to disable it.",
      "default": true
    },
    "is_template": {
      "type": "boolean",
      "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.",
      "default": false
    },
    "default_branch": {
      "type": "string",
      "description": "Updates the default branch for this repository."
    },
    "allow_squash_merge": {
      "type": "boolean",
      "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.",
      "default": true
    },
    "allow_merge_commit": {
      "type": "boolean",
      "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.",
      "default": true
    },
    "allow_rebase_merge": {
      "type": "boolean",
      "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.",
      "default": true
    },
    "allow_auto_merge": {
      "type": "boolean",
      "description": "Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge.",
      "default": false
    },
    "delete_branch_on_merge": {
      "type": "boolean",
      "description": "Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion.",
      "default": false
    },
    "allow_update_branch": {
      "type": "boolean",
      "description": "Either `true` to always allow a pull request head branch that is behind its base branch to be updated even if it is not required to be up to date before merging, or false otherwise.",
      "default": false
    },
    "use_squash_pr_title_as_default": {
      "type": "boolean",
      "description": "Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. **This property is closing down. Please use `squash_merge_commit_title` instead.",
      "default": false
    },
    "squash_merge_commit_title": {
      "type": "string",
      "enum": [
        "PR_TITLE",
        "COMMIT_OR_PR_TITLE"
      ],
      "description": "Required when using `squash_merge_commit_message`.\n\nThe default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)."
    },
    "squash_merge_commit_message": {
      "type": "string",
      "enum": [
        "PR_BODY",
        "COMMIT_MESSAGES",
        "BLANK"
      ],
      "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message."
    },
    "merge_commit_title": {
      "type": "string",
      "enum": [
        "PR_TITLE",
        "MERGE_MESSAGE"
      ],
      "description": "Required when using `merge_commit_message`.\n\nThe default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)."
    },
    "merge_commit_message": {
      "type": "string",
      "enum": [
        "PR_BODY",
        "PR_TITLE",
        "BLANK"
      ],
      "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message."
    },
    "archived": {
      "type": "boolean",
      "description": "Whether to archive this repository. `false` will unarchive a previously archived repository.",
      "default": false
    },
    "allow_forking": {
      "type": "boolean",
      "description": "Either `true` to allow private forks, or `false` to prevent private forks.",
      "default": false
    },
    "web_commit_signoff_required": {
      "type": "boolean",
      "description": "Either `true` to require contributors to sign off on web-based commits, or `false` to not require contributors to sign off on web-based commits.",
      "default": false
    }
  },
  "$schema": "https://json-schema.org/draft/2019-09/schema"
}