"""
Auto-generated Pydantic models for the GitHub repository schema.
Do not edit this file manually — it is generated by `scripts/gen_models.py`
from the JSON schema at schemas/github_repo.json.
"""
# generated by datamodel-codegen:
# filename: github_repo.json
# timestamp: 2025-11-04T16:20:15+00:00
from __future__ import annotations
from enum import Enum
from typing import Any
from pydantic import AnyUrl, AwareDatetime, BaseModel, Field
[docs]
class Owner(BaseModel):
name: str | None = None
email: str | None = None
login: str = Field(..., examples=["octocat"])
id: int = Field(..., examples=[1])
node_id: str = Field(..., examples=["MDQ6VXNlcjE="])
avatar_url: AnyUrl = Field(..., examples=["https://github.com/images/error/octocat_happy.gif"])
gravatar_id: str | None = Field(..., examples=["41d064eb2195891e12d0413f63227ea7"])
url: AnyUrl = Field(..., examples=["https://api.github.com/users/octocat"])
html_url: AnyUrl = Field(..., examples=["https://github.com/octocat"])
followers_url: AnyUrl = Field(..., examples=["https://api.github.com/users/octocat/followers"])
following_url: str = Field(..., examples=["https://api.github.com/users/octocat/following{/other_user}"])
gists_url: str = Field(..., examples=["https://api.github.com/users/octocat/gists{/gist_id}"])
starred_url: str = Field(..., examples=["https://api.github.com/users/octocat/starred{/owner}{/repo}"])
subscriptions_url: AnyUrl = Field(..., examples=["https://api.github.com/users/octocat/subscriptions"])
organizations_url: AnyUrl = Field(..., examples=["https://api.github.com/users/octocat/orgs"])
repos_url: AnyUrl = Field(..., examples=["https://api.github.com/users/octocat/repos"])
events_url: str = Field(..., examples=["https://api.github.com/users/octocat/events{/privacy}"])
received_events_url: AnyUrl = Field(..., examples=["https://api.github.com/users/octocat/received_events"])
type: str = Field(..., examples=["User"])
site_admin: bool
starred_at: str | None = Field(None, examples=['"2020-07-09T00:17:55Z"'])
user_view_type: str | None = Field(None, examples=["public"])
[docs]
class Permissions(BaseModel):
admin: bool
maintain: bool | None = None
push: bool
triage: bool | None = None
pull: bool
[docs]
class License(BaseModel):
key: str = Field(..., examples=["mit"])
name: str = Field(..., examples=["MIT License"])
url: AnyUrl | None = Field(..., examples=["https://api.github.com/licenses/mit"])
spdx_id: str | None = Field(..., examples=["MIT"])
node_id: str = Field(..., examples=["MDc6TGljZW5zZW1pdA=="])
html_url: AnyUrl | None = None
[docs]
class Permissions1(BaseModel):
admin: bool
pull: bool
triage: bool | None = None
push: bool
maintain: bool | None = None
[docs]
class SquashMergeCommitTitle(Enum):
PR_TITLE = "PR_TITLE"
COMMIT_OR_PR_TITLE = "COMMIT_OR_PR_TITLE"
[docs]
class SquashMergeCommitMessage(Enum):
PR_BODY = "PR_BODY"
COMMIT_MESSAGES = "COMMIT_MESSAGES"
BLANK = "BLANK"
[docs]
class MergeCommitTitle(Enum):
PR_TITLE = "PR_TITLE"
MERGE_MESSAGE = "MERGE_MESSAGE"
[docs]
class MergeCommitMessage(Enum):
PR_BODY = "PR_BODY"
PR_TITLE = "PR_TITLE"
BLANK = "BLANK"
[docs]
class CodeSearchIndexStatus(BaseModel):
lexical_search_ok: bool | None = None
lexical_commit_sha: str | None = None
[docs]
class TemplateRepository(BaseModel):
id: int = Field(..., description="Unique identifier of the repository", examples=[42])
node_id: str = Field(..., examples=["MDEwOlJlcG9zaXRvcnkxMjk2MjY5"])
name: str = Field(..., description="The name of the repository.", examples=["Team Environment"])
full_name: str = Field(..., examples=["octocat/Hello-World"])
license: License | None = None
forks: int
permissions: Permissions1 | None = None
owner: Owner = Field(..., description="A GitHub user.", title="Simple User")
private: bool = Field(..., description="Whether the repository is private or public.")
html_url: AnyUrl = Field(..., examples=["https://github.com/octocat/Hello-World"])
description: str | None = Field(..., examples=["This your first repo!"])
fork: bool
url: AnyUrl = Field(..., examples=["https://api.github.com/repos/octocat/Hello-World"])
archive_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}"])
assignees_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/assignees{/user}"])
blobs_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}"])
branches_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/branches{/branch}"])
collaborators_url: str = Field(
..., examples=["http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}"]
)
comments_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/comments{/number}"])
commits_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/commits{/sha}"])
compare_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}"])
contents_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/contents/{+path}"])
contributors_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/contributors"])
deployments_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/deployments"])
downloads_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/downloads"])
events_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/events"])
forks_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/forks"])
git_commits_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}"])
git_refs_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}"])
git_tags_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}"])
git_url: str = Field(..., examples=["git:github.com/octocat/Hello-World.git"])
issue_comment_url: str = Field(
..., examples=["http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}"]
)
issue_events_url: str = Field(
..., examples=["http://api.github.com/repos/octocat/Hello-World/issues/events{/number}"]
)
issues_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/issues{/number}"])
keys_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/keys{/key_id}"])
labels_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/labels{/name}"])
languages_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/languages"])
merges_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/merges"])
milestones_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/milestones{/number}"])
notifications_url: str = Field(
..., examples=["http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}"]
)
pulls_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/pulls{/number}"])
releases_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/releases{/id}"])
ssh_url: str = Field(..., examples=["git@github.com:octocat/Hello-World.git"])
stargazers_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/stargazers"])
statuses_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/statuses/{sha}"])
subscribers_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/subscribers"])
subscription_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/subscription"])
tags_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/tags"])
teams_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/teams"])
trees_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}"])
clone_url: str = Field(..., examples=["https://github.com/octocat/Hello-World.git"])
mirror_url: AnyUrl | None = Field(..., examples=["git:git.example.com/octocat/Hello-World"])
hooks_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/hooks"])
svn_url: AnyUrl = Field(..., examples=["https://svn.github.com/octocat/Hello-World"])
homepage: AnyUrl | None = Field(..., examples=["https://github.com"])
language: str | None = None
forks_count: int = Field(..., examples=[9])
stargazers_count: int = Field(..., examples=[80])
watchers_count: int = Field(..., examples=[80])
size: int = Field(
...,
description="The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.",
examples=[108],
)
default_branch: str = Field(..., description="The default branch of the repository.", examples=["master"])
open_issues_count: int = Field(..., examples=[0])
is_template: bool | None = Field(
False,
description="Whether this repository acts as a template that can be used to generate new repositories.",
examples=[True],
)
topics: list[str] | None = None
has_issues: bool = Field(..., description="Whether issues are enabled.", examples=[True])
has_projects: bool = Field(..., description="Whether projects are enabled.", examples=[True])
has_wiki: bool = Field(..., description="Whether the wiki is enabled.", examples=[True])
has_pages: bool
has_downloads: bool = Field(..., description="Whether downloads are enabled.", examples=[True])
has_discussions: bool | None = Field(False, description="Whether discussions are enabled.", examples=[True])
archived: bool = Field(..., description="Whether the repository is archived.")
disabled: bool = Field(..., description="Returns whether or not this repository disabled.")
visibility: str | None = Field("public", description="The repository visibility: public, private, or internal.")
pushed_at: AwareDatetime | None = Field(..., examples=["2011-01-26T19:06:43Z"])
created_at: AwareDatetime | None = Field(..., examples=["2011-01-26T19:01:12Z"])
updated_at: AwareDatetime | None = Field(..., examples=["2011-01-26T19:14:43Z"])
allow_rebase_merge: bool | None = Field(
True, description="Whether to allow rebase merges for pull requests.", examples=[True]
)
temp_clone_token: str | None = None
allow_squash_merge: bool | None = Field(
True, description="Whether to allow squash merges for pull requests.", examples=[True]
)
allow_auto_merge: bool | None = Field(
False, description="Whether to allow Auto-merge to be used on pull requests.", examples=[False]
)
delete_branch_on_merge: bool | None = Field(
False, description="Whether to delete head branches when pull requests are merged", examples=[False]
)
allow_update_branch: bool | None = Field(
False,
description="Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging.",
examples=[False],
)
use_squash_pr_title_as_default: bool | None = Field(
False,
description="Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.",
)
squash_merge_commit_title: SquashMergeCommitTitle | None = Field(
None,
description="The 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: SquashMergeCommitMessage | None = Field(
None,
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: MergeCommitTitle | None = Field(
None,
description="The 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: MergeCommitMessage | None = Field(
None,
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.",
)
allow_merge_commit: bool | None = Field(
True, description="Whether to allow merge commits for pull requests.", examples=[True]
)
allow_forking: bool | None = Field(None, description="Whether to allow forking this repo")
web_commit_signoff_required: bool | None = Field(
False, description="Whether to require contributors to sign off on web-based commits"
)
open_issues: int
watchers: int
master_branch: str | None = None
starred_at: str | None = Field(None, examples=['"2020-07-09T00:17:42Z"'])
anonymous_access_enabled: bool | None = Field(
None, description="Whether anonymous git access is enabled for this repository"
)
code_search_index_status: CodeSearchIndexStatus | None = Field(
None, description="The status of the code search index for this repository"
)
Organization = Owner
Parent = TemplateRepository
Source = TemplateRepository
[docs]
class CodeOfConduct(BaseModel):
url: AnyUrl = Field(..., examples=["https://api.github.com/repos/github/docs/community/code_of_conduct"])
key: str = Field(..., examples=["citizen_code_of_conduct"])
name: str = Field(..., examples=["Citizen Code of Conduct"])
html_url: AnyUrl | None = Field(..., examples=["https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md"])
[docs]
class Status(Enum):
enabled = "enabled"
disabled = "disabled"
[docs]
class AdvancedSecurity(BaseModel):
status: Status | None = None
CodeSecurity = AdvancedSecurity
[docs]
class DependabotSecurityUpdates(BaseModel):
status: Status | None = Field(
None, description="The enablement status of Dependabot security updates for the repository."
)
SecretScanning = AdvancedSecurity
SecretScanningPushProtection = AdvancedSecurity
SecretScanningNonProviderPatterns = AdvancedSecurity
SecretScanningAiDetection = AdvancedSecurity
[docs]
class SecurityAndAnalysis(BaseModel):
advanced_security: AdvancedSecurity | None = Field(
None,
description="Enable or disable GitHub Advanced Security for the repository.\n\nFor standalone Code Scanning or Secret Protection products, this parameter cannot be used.\n",
)
code_security: CodeSecurity | None = None
dependabot_security_updates: DependabotSecurityUpdates | None = Field(
None, description="Enable or disable Dependabot security updates for the repository."
)
secret_scanning: SecretScanning | None = None
secret_scanning_push_protection: SecretScanningPushProtection | None = None
secret_scanning_non_provider_patterns: SecretScanningNonProviderPatterns | None = None
secret_scanning_ai_detection: SecretScanningAiDetection | None = None
[docs]
class FullRepository(BaseModel):
id: int = Field(..., examples=[1296269])
node_id: str = Field(..., examples=["MDEwOlJlcG9zaXRvcnkxMjk2MjY5"])
name: str = Field(..., examples=["Hello-World"])
full_name: str = Field(..., examples=["octocat/Hello-World"])
owner: Owner = Field(..., description="A GitHub user.", title="Simple User")
private: bool
html_url: AnyUrl = Field(..., examples=["https://github.com/octocat/Hello-World"])
description: str | None = Field(..., examples=["This your first repo!"])
fork: bool
url: AnyUrl = Field(..., examples=["https://api.github.com/repos/octocat/Hello-World"])
archive_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}"])
assignees_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/assignees{/user}"])
blobs_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}"])
branches_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/branches{/branch}"])
collaborators_url: str = Field(
..., examples=["http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}"]
)
comments_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/comments{/number}"])
commits_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/commits{/sha}"])
compare_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}"])
contents_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/contents/{+path}"])
contributors_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/contributors"])
deployments_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/deployments"])
downloads_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/downloads"])
events_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/events"])
forks_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/forks"])
git_commits_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}"])
git_refs_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}"])
git_tags_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}"])
git_url: str = Field(..., examples=["git:github.com/octocat/Hello-World.git"])
issue_comment_url: str = Field(
..., examples=["http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}"]
)
issue_events_url: str = Field(
..., examples=["http://api.github.com/repos/octocat/Hello-World/issues/events{/number}"]
)
issues_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/issues{/number}"])
keys_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/keys{/key_id}"])
labels_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/labels{/name}"])
languages_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/languages"])
merges_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/merges"])
milestones_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/milestones{/number}"])
notifications_url: str = Field(
..., examples=["http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}"]
)
pulls_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/pulls{/number}"])
releases_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/releases{/id}"])
ssh_url: str = Field(..., examples=["git@github.com:octocat/Hello-World.git"])
stargazers_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/stargazers"])
statuses_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/statuses/{sha}"])
subscribers_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/subscribers"])
subscription_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/subscription"])
tags_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/tags"])
teams_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/teams"])
trees_url: str = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}"])
clone_url: str = Field(..., examples=["https://github.com/octocat/Hello-World.git"])
mirror_url: AnyUrl | None = Field(..., examples=["git:git.example.com/octocat/Hello-World"])
hooks_url: AnyUrl = Field(..., examples=["http://api.github.com/repos/octocat/Hello-World/hooks"])
svn_url: AnyUrl = Field(..., examples=["https://svn.github.com/octocat/Hello-World"])
homepage: AnyUrl | None = Field(..., examples=["https://github.com"])
language: str | None = None
forks_count: int = Field(..., examples=[9])
stargazers_count: int = Field(..., examples=[80])
watchers_count: int = Field(..., examples=[80])
size: int = Field(
...,
description="The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.",
examples=[108],
)
default_branch: str = Field(..., examples=["master"])
open_issues_count: int = Field(..., examples=[0])
is_template: bool | None = Field(None, examples=[True])
topics: list[str] | None = Field(None, examples=["octocat", "atom", "electron", "API"])
has_issues: bool = Field(..., examples=[True])
has_projects: bool = Field(..., examples=[True])
has_wiki: bool = Field(..., examples=[True])
has_pages: bool
has_downloads: bool | None = Field(None, examples=[True])
has_discussions: bool = Field(..., examples=[True])
archived: bool
disabled: bool = Field(..., description="Returns whether or not this repository disabled.")
visibility: str | None = Field(
None, description="The repository visibility: public, private, or internal.", examples=["public"]
)
pushed_at: AwareDatetime = Field(..., examples=["2011-01-26T19:06:43Z"])
created_at: AwareDatetime = Field(..., examples=["2011-01-26T19:01:12Z"])
updated_at: AwareDatetime = Field(..., examples=["2011-01-26T19:14:43Z"])
permissions: Permissions | None = None
allow_rebase_merge: bool | None = Field(None, examples=[True])
template_repository: TemplateRepository | None = None
temp_clone_token: str | None = None
allow_squash_merge: bool | None = Field(None, examples=[True])
allow_auto_merge: bool | None = Field(None, examples=[False])
delete_branch_on_merge: bool | None = Field(None, examples=[False])
allow_merge_commit: bool | None = Field(None, examples=[True])
allow_update_branch: bool | None = Field(None, examples=[True])
use_squash_pr_title_as_default: bool | None = Field(None, examples=[False])
squash_merge_commit_title: SquashMergeCommitTitle | None = Field(
None,
description="The 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).",
examples=["PR_TITLE"],
)
squash_merge_commit_message: SquashMergeCommitMessage | None = Field(
None,
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.",
examples=["PR_BODY"],
)
merge_commit_title: MergeCommitTitle | None = Field(
None,
description="The 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).",
examples=["PR_TITLE"],
)
merge_commit_message: MergeCommitMessage | None = Field(
None,
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.",
examples=["PR_BODY"],
)
allow_forking: bool | None = Field(None, examples=[True])
web_commit_signoff_required: bool | None = Field(None, examples=[False])
subscribers_count: int = Field(..., examples=[42])
network_count: int = Field(..., examples=[0])
license: License | None = None
organization: Organization | None = None
parent: Parent | None = Field(None, description="A repository on GitHub.", title="Repository")
source: Source | None = Field(None, description="A repository on GitHub.", title="Repository")
forks: int
master_branch: str | None = None
open_issues: int
watchers: int
anonymous_access_enabled: bool | None = Field(True, description="Whether anonymous git access is allowed.")
code_of_conduct: CodeOfConduct | None = Field(
None, description="Code of Conduct Simple", title="Code Of Conduct Simple"
)
security_and_analysis: SecurityAndAnalysis | None = None
custom_properties: dict[str, Any] | None = Field(
None,
description="The custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.",
)