GitHubRepositoryModel#

pydantic model safir.github.models.GitHubRepositoryModel#

A Pydantic model for the repository field, often found in webhook payloads.

https://docs.github.com/en/rest/repos/repos#get-a-repository

Parameters:

data (Any) –

Show JSON schema
{
   "title": "GitHubRepositoryModel",
   "description": "A Pydantic model for the ``repository`` field, often found in webhook\npayloads.\n\nhttps://docs.github.com/en/rest/repos/repos#get-a-repository",
   "type": "object",
   "properties": {
      "name": {
         "description": "Excludes owner prefix.",
         "examples": [
            "times-square-demo"
         ],
         "title": "Repository name",
         "type": "string"
      },
      "full_name": {
         "description": "Full name, including owner prefix (e.g. ``lsst-sqre/times-square-demo``).)",
         "examples": [
            "lsst-sqre/times-square-demo"
         ],
         "title": "Full name",
         "type": "string"
      },
      "owner": {
         "allOf": [
            {
               "$ref": "#/$defs/GitHubRepoOwnerModel"
            }
         ],
         "description": "The repository's owner."
      },
      "default_branch": {
         "description": "The default branch (e.g. main).",
         "examples": [
            "main"
         ],
         "title": "Default Branch",
         "type": "string"
      },
      "html_url": {
         "description": "URL of the repository for browsers.",
         "examples": [
            "https://github.com/lsst-sqre/times-square-demo"
         ],
         "format": "uri",
         "maxLength": 2083,
         "minLength": 1,
         "title": "Html Url",
         "type": "string"
      },
      "branches_url": {
         "description": "URI template for the repo's branches endpoint.",
         "examples": [
            "https://github.com/lsst-sqre/times-square-demo/branches{/branch}"
         ],
         "title": "Branches Url",
         "type": "string"
      },
      "contents_url": {
         "description": "URI template for the contents endpoint.",
         "examples": [
            "https://github.com/lsst-sqre/times-square-demo/contents/{+path}"
         ],
         "title": "Contents Url",
         "type": "string"
      },
      "trees_url": {
         "description": "URI template for the Git tree API.",
         "examples": [
            "https://github.com/lsst-sqre/times-square-demo/git/trees{/sha}"
         ],
         "title": "Trees Url",
         "type": "string"
      },
      "blobs_url": {
         "description": "URI template for the Git blobs API.",
         "examples": [
            "https://github.com/lsst-sqre/times-square-demo/git/blobs{/sha}"
         ],
         "title": "Blobs Url",
         "type": "string"
      }
   },
   "$defs": {
      "GitHubRepoOwnerModel": {
         "description": "A Pydantic model for the ``owner`` field found in repository objects.\n\nhttps://docs.github.com/en/rest/repos/repos#get-a-repository",
         "properties": {
            "login": {
               "description": "Login name of the owner (either a user or an organization).",
               "examples": [
                  "lsst-sqre"
               ],
               "title": "Login name",
               "type": "string"
            }
         },
         "required": [
            "login"
         ],
         "title": "GitHubRepoOwnerModel",
         "type": "object"
      }
   },
   "required": [
      "name",
      "full_name",
      "owner",
      "default_branch",
      "html_url",
      "branches_url",
      "contents_url",
      "trees_url",
      "blobs_url"
   ]
}

Fields:
field blobs_url: str [Required]#

URI template for the Git blobs API.

field branches_url: str [Required]#

URI template for the repo’s branches endpoint.

field contents_url: str [Required]#

URI template for the contents endpoint.

field default_branch: str [Required]#

The default branch (e.g. main).

field full_name: str [Required]#

Full name, including owner prefix (e.g. lsst-sqre/times-square-demo).)

field html_url: HttpUrl [Required]#

URL of the repository for browsers.

Constraints:
  • max_length = 2083

  • allowed_schemes = [‘http’, ‘https’]

field name: str [Required]#

Excludes owner prefix.

field owner: GitHubRepoOwnerModel [Required]#

The repository’s owner.

field trees_url: str [Required]#

URI template for the Git tree API.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.