From ea545e27a3eee71c35eb489e2c7ed3bcaf3210a3 Mon Sep 17 00:00:00 2001 From: RGBCube <78925721+RGBCube@users.noreply.github.com> Date: Tue, 28 Jun 2022 16:13:32 +0300 Subject: [PATCH] Make parser work well for objects with unknown names --- tools/output.py | 245 +++- tools/source.json | 2403 +++++++++++++++++++++++++++++++++++--- tools/unschema/parser.py | 12 +- 3 files changed, 2496 insertions(+), 164 deletions(-) diff --git a/tools/output.py b/tools/output.py index 97eccf1..5c5b2d1 100644 --- a/tools/output.py +++ b/tools/output.py @@ -30,4 +30,247 @@ class SimpleUser(TypedDict): starred_at: NotRequired[str] -GeneratedObject = List[SimpleUser] +class Permissions(TypedDict): + admin: NotRequired[bool] + maintain: NotRequired[bool] + push: NotRequired[bool] + triage: NotRequired[bool] + pull: NotRequired[bool] + + +class LicenseSimple(TypedDict): + key: str + name: str + url: Optional[str] + spdx_id: Optional[str] + node_id: str + html_url: NotRequired[str] + + +class Repository(TypedDict): + id: int + node_id: str + name: str + full_name: str + license: Optional[LicenseSimple] + organization: NotRequired[Optional[SimpleUser]] + forks: int + permissions: NotRequired[Permissions] + owner: SimpleUser + private: bool + html_url: str + description: Optional[str] + fork: bool + url: str + archive_url: str + assignees_url: str + blobs_url: str + branches_url: str + collaborators_url: str + comments_url: str + commits_url: str + compare_url: str + contents_url: str + contributors_url: str + deployments_url: str + downloads_url: str + events_url: str + forks_url: str + git_commits_url: str + git_refs_url: str + git_tags_url: str + git_url: str + issue_comment_url: str + issue_events_url: str + issues_url: str + keys_url: str + labels_url: str + languages_url: str + merges_url: str + milestones_url: str + notifications_url: str + pulls_url: str + releases_url: str + ssh_url: str + stargazers_url: str + statuses_url: str + subscribers_url: str + subscription_url: str + tags_url: str + teams_url: str + trees_url: str + clone_url: str + mirror_url: Optional[str] + hooks_url: str + svn_url: str + homepage: Optional[str] + language: Optional[str] + forks_count: int + stargazers_count: int + watchers_count: int + size: int + default_branch: str + open_issues_count: int + is_template: NotRequired[bool] + topics: NotRequired[List[str]] + has_issues: bool + has_projects: bool + has_wiki: bool + has_pages: bool + has_downloads: bool + archived: bool + disabled: bool + visibility: NotRequired[str] + pushed_at: Optional[str] + created_at: Optional[str] + updated_at: Optional[str] + allow_rebase_merge: NotRequired[bool] + template_repository: NotRequired[Optional[dict]] + temp_clone_token: NotRequired[str] + allow_squash_merge: NotRequired[bool] + allow_auto_merge: NotRequired[bool] + delete_branch_on_merge: NotRequired[bool] + allow_update_branch: NotRequired[bool] + use_squash_pr_title_as_default: NotRequired[bool] + allow_merge_commit: NotRequired[bool] + allow_forking: NotRequired[bool] + subscribers_count: NotRequired[int] + network_count: NotRequired[int] + open_issues: int + watchers: int + master_branch: NotRequired[str] + starred_at: NotRequired[str] + + +class CodeOfConduct(TypedDict): + key: str + name: str + url: str + body: NotRequired[str] + html_url: Optional[str] + + +class MinimalRepository(TypedDict): + id: int + node_id: str + name: str + full_name: str + owner: SimpleUser + private: bool + html_url: str + description: Optional[str] + fork: bool + url: str + archive_url: str + assignees_url: str + blobs_url: str + branches_url: str + collaborators_url: str + comments_url: str + commits_url: str + compare_url: str + contents_url: str + contributors_url: str + deployments_url: str + downloads_url: str + events_url: str + forks_url: str + git_commits_url: str + git_refs_url: str + git_tags_url: str + git_url: NotRequired[str] + issue_comment_url: str + issue_events_url: str + issues_url: str + keys_url: str + labels_url: str + languages_url: str + merges_url: str + milestones_url: str + notifications_url: str + pulls_url: str + releases_url: str + ssh_url: NotRequired[str] + stargazers_url: str + statuses_url: str + subscribers_url: str + subscription_url: str + tags_url: str + teams_url: str + trees_url: str + clone_url: NotRequired[str] + mirror_url: NotRequired[Optional[str]] + hooks_url: str + svn_url: NotRequired[str] + homepage: NotRequired[Optional[str]] + language: NotRequired[Optional[str]] + forks_count: NotRequired[int] + stargazers_count: NotRequired[int] + watchers_count: NotRequired[int] + size: NotRequired[int] + default_branch: NotRequired[str] + open_issues_count: NotRequired[int] + is_template: NotRequired[bool] + topics: NotRequired[List[str]] + has_issues: NotRequired[bool] + has_projects: NotRequired[bool] + has_wiki: NotRequired[bool] + has_pages: NotRequired[bool] + has_downloads: NotRequired[bool] + archived: NotRequired[bool] + disabled: NotRequired[bool] + visibility: NotRequired[str] + pushed_at: NotRequired[Optional[str]] + created_at: NotRequired[Optional[str]] + updated_at: NotRequired[Optional[str]] + permissions: NotRequired[Permissions] + role_name: NotRequired[str] + template_repository: NotRequired[Optional[Repository]] + temp_clone_token: NotRequired[str] + delete_branch_on_merge: NotRequired[bool] + subscribers_count: NotRequired[int] + network_count: NotRequired[int] + code_of_conduct: NotRequired[CodeOfConduct] + license: NotRequired[Optional[dict]] + forks: NotRequired[int] + open_issues: NotRequired[int] + watchers: NotRequired[int] + allow_forking: NotRequired[bool] + + +class GeneratedObject116(TypedDict): + text: NotRequired[str] + indices: NotRequired[List[int]] + + +class GeneratedObject122(TypedDict): + object_url: NotRequired[str] + object_type: NotRequired[Optional[str]] + property: NotRequired[str] + fragment: NotRequired[str] + matches: NotRequired[List[GeneratedObject116]] + + +class CodeSearchResultItem(TypedDict): + name: str + path: str + sha: str + url: str + git_url: str + html_url: str + repository: MinimalRepository + score: float + file_size: NotRequired[int] + language: NotRequired[Optional[str]] + last_modified_at: NotRequired[str] + line_numbers: NotRequired[List[str]] + text_matches: NotRequired[List[GeneratedObject122]] + + +class GeneratedObject188(TypedDict): + total_count: int + incomplete_results: bool + items: List[CodeSearchResultItem] + + +GeneratedObject = GeneratedObject188 diff --git a/tools/source.json b/tools/source.json index 2779a00..ae2d09a 100644 --- a/tools/source.json +++ b/tools/source.json @@ -1,164 +1,2249 @@ { - "type": "array", - "items": { - "title": "Simple User", - "description": "Simple User", - "type": "object", - "properties": { - "name": { - "type": [ - "string", - "null" - ] - }, - "email": { - "type": [ - "string", - "null" - ] - }, - "login": { - "type": "string", - "examples": [ - "octocat" - ] - }, - "id": { - "type": "integer", - "examples": [ - 1 - ] - }, - "node_id": { - "type": "string", - "examples": [ - "MDQ6VXNlcjE=" - ] - }, - "avatar_url": { - "type": "string", - "format": "uri", - "examples": [ - "https://github.com/images/error/octocat_happy.gif" - ] - }, - "gravatar_id": { - "type": [ - "string", - "null" - ], - "examples": [ - "41d064eb2195891e12d0413f63227ea7" - ] - }, - "url": { - "type": "string", - "format": "uri", - "examples": [ - "https://api.github.com/users/octocat" - ] - }, - "html_url": { - "type": "string", - "format": "uri", - "examples": [ - "https://github.com/octocat" - ] - }, - "followers_url": { - "type": "string", - "format": "uri", - "examples": [ - "https://api.github.com/users/octocat/followers" - ] - }, - "following_url": { - "type": "string", - "examples": [ - "https://api.github.com/users/octocat/following{/other_user}" - ] - }, - "gists_url": { - "type": "string", - "examples": [ - "https://api.github.com/users/octocat/gists{/gist_id}" - ] - }, - "starred_url": { - "type": "string", - "examples": [ - "https://api.github.com/users/octocat/starred{/owner}{/repo}" - ] - }, - "subscriptions_url": { - "type": "string", - "format": "uri", - "examples": [ - "https://api.github.com/users/octocat/subscriptions" - ] - }, - "organizations_url": { - "type": "string", - "format": "uri", - "examples": [ - "https://api.github.com/users/octocat/orgs" - ] - }, - "repos_url": { - "type": "string", - "format": "uri", - "examples": [ - "https://api.github.com/users/octocat/repos" - ] - }, - "events_url": { - "type": "string", - "examples": [ - "https://api.github.com/users/octocat/events{/privacy}" - ] - }, - "received_events_url": { - "type": "string", - "format": "uri", - "examples": [ - "https://api.github.com/users/octocat/received_events" - ] - }, - "type": { - "type": "string", - "examples": [ - "User" - ] - }, - "site_admin": { - "type": "boolean" - }, - "starred_at": { - "type": "string", - "examples": [ - "\"2020-07-09T00:17:55Z\"" + "type": "object", + "required": [ + "total_count", + "incomplete_results", + "items" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "incomplete_results": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "title": "Code Search Result Item", + "description": "Code Search Result Item", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "git_url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "repository": { + "title": "Minimal Repository", + "description": "Minimal Repository", + "type": "object", + "properties": { + "id": { + "type": "integer", + "examples": [ + 1296269 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + ] + }, + "name": { + "type": "string", + "examples": [ + "Hello-World" + ] + }, + "full_name": { + "type": "string", + "examples": [ + "octocat/Hello-World" + ] + }, + "owner": { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "private": { + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat/Hello-World" + ] + }, + "description": { + "type": [ + "string", + "null" + ], + "examples": [ + "This your first repo!" + ] + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World" + ] + }, + "archive_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + ] + }, + "assignees_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + ] + }, + "blobs_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + ] + }, + "branches_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + ] + }, + "collaborators_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + ] + }, + "comments_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + ] + }, + "commits_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + ] + }, + "compare_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + ] + }, + "contents_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + ] + }, + "contributors_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/contributors" + ] + }, + "deployments_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/deployments" + ] + }, + "downloads_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/downloads" + ] + }, + "events_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/events" + ] + }, + "forks_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/forks" + ] + }, + "git_commits_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + ] + }, + "git_refs_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + ] + }, + "git_tags_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + ] + }, + "git_url": { + "type": "string" + }, + "issue_comment_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + ] + }, + "issue_events_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + ] + }, + "issues_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + ] + }, + "keys_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + ] + }, + "labels_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + ] + }, + "languages_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/languages" + ] + }, + "merges_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/merges" + ] + }, + "milestones_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + ] + }, + "notifications_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + ] + }, + "pulls_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + ] + }, + "releases_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + ] + }, + "ssh_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/stargazers" + ] + }, + "statuses_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + ] + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/subscribers" + ] + }, + "subscription_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/subscription" + ] + }, + "tags_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/tags" + ] + }, + "teams_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/teams" + ] + }, + "trees_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + ] + }, + "clone_url": { + "type": "string" + }, + "mirror_url": { + "type": [ + "string", + "null" + ] + }, + "hooks_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/hooks" + ] + }, + "svn_url": { + "type": "string" + }, + "homepage": { + "type": [ + "string", + "null" + ] + }, + "language": { + "type": [ + "string", + "null" + ] + }, + "forks_count": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "default_branch": { + "type": "string" + }, + "open_issues_count": { + "type": "integer" + }, + "is_template": { + "type": "boolean" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "type": "boolean" + }, + "has_projects": { + "type": "boolean" + }, + "has_wiki": { + "type": "boolean" + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "type": "boolean" + }, + "archived": { + "type": "boolean" + }, + "disabled": { + "type": "boolean" + }, + "visibility": { + "type": "string" + }, + "pushed_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "examples": [ + "2011-01-26T19:06:43Z" + ] + }, + "created_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "examples": [ + "2011-01-26T19:01:12Z" + ] + }, + "updated_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "examples": [ + "2011-01-26T19:14:43Z" + ] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "role_name": { + "type": "string", + "examples": [ + "admin" + ] + }, + "template_repository": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository", + "type": "integer", + "examples": [ + 42 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + ] + }, + "name": { + "description": "The name of the repository.", + "type": "string", + "examples": [ + "Team Environment" + ] + }, + "full_name": { + "type": "string", + "examples": [ + "octocat/Hello-World" + ] + }, + "license": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "License Simple", + "description": "License Simple", + "type": "object", + "properties": { + "key": { + "type": "string", + "examples": [ + "mit" + ] + }, + "name": { + "type": "string", + "examples": [ + "MIT License" + ] + }, + "url": { + "type": [ + "string", + "null" + ], + "format": "uri", + "examples": [ + "https://api.github.com/licenses/mit" + ] + }, + "spdx_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "MIT" + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDc6TGljZW5zZW1pdA==" + ] + }, + "html_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "key", + "name", + "url", + "spdx_id", + "node_id" + ] + } + ] + }, + "organization": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + ] + }, + "forks": { + "type": "integer" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + } + }, + "required": [ + "admin", + "pull", + "push" + ] + }, + "owner": { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat/Hello-World" + ] + }, + "description": { + "type": [ + "string", + "null" + ], + "examples": [ + "This your first repo!" + ] + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World" + ] + }, + "archive_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + ] + }, + "assignees_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + ] + }, + "blobs_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + ] + }, + "branches_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + ] + }, + "collaborators_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + ] + }, + "comments_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + ] + }, + "commits_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + ] + }, + "compare_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + ] + }, + "contents_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + ] + }, + "contributors_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/contributors" + ] + }, + "deployments_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/deployments" + ] + }, + "downloads_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/downloads" + ] + }, + "events_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/events" + ] + }, + "forks_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/forks" + ] + }, + "git_commits_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + ] + }, + "git_refs_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + ] + }, + "git_tags_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + ] + }, + "git_url": { + "type": "string", + "examples": [ + "git:github.com/octocat/Hello-World.git" + ] + }, + "issue_comment_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + ] + }, + "issue_events_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + ] + }, + "issues_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + ] + }, + "keys_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + ] + }, + "labels_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + ] + }, + "languages_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/languages" + ] + }, + "merges_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/merges" + ] + }, + "milestones_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + ] + }, + "notifications_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + ] + }, + "pulls_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + ] + }, + "releases_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + ] + }, + "ssh_url": { + "type": "string", + "examples": [ + "git@github.com:octocat/Hello-World.git" + ] + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/stargazers" + ] + }, + "statuses_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + ] + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/subscribers" + ] + }, + "subscription_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/subscription" + ] + }, + "tags_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/tags" + ] + }, + "teams_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/teams" + ] + }, + "trees_url": { + "type": "string", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + ] + }, + "clone_url": { + "type": "string", + "examples": [ + "https://github.com/octocat/Hello-World.git" + ] + }, + "mirror_url": { + "type": [ + "string", + "null" + ], + "format": "uri", + "examples": [ + "git:git.example.com/octocat/Hello-World" + ] + }, + "hooks_url": { + "type": "string", + "format": "uri", + "examples": [ + "http://api.github.com/repos/octocat/Hello-World/hooks" + ] + }, + "svn_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://svn.github.com/octocat/Hello-World" + ] + }, + "homepage": { + "type": [ + "string", + "null" + ], + "format": "uri", + "examples": [ + "https://github.com" + ] + }, + "language": { + "type": [ + "string", + "null" + ] + }, + "forks_count": { + "type": "integer", + "examples": [ + 9 + ] + }, + "stargazers_count": { + "type": "integer", + "examples": [ + 80 + ] + }, + "watchers_count": { + "type": "integer", + "examples": [ + 80 + ] + }, + "size": { + "type": "integer", + "examples": [ + 108 + ] + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string", + "examples": [ + "master" + ] + }, + "open_issues_count": { + "type": "integer", + "examples": [ + 0 + ] + }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "examples": [ + true + ] + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "examples": [ + true + ] + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "examples": [ + true + ] + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "examples": [ + true + ] + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "examples": [ + true + ] + }, + "archived": { + "description": "Whether the repository is archived.", + "default": false, + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "default": "public", + "type": "string" + }, + "pushed_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "examples": [ + "2011-01-26T19:06:43Z" + ] + }, + "created_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "examples": [ + "2011-01-26T19:01:12Z" + ] + }, + "updated_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "examples": [ + "2011-01-26T19:14:43Z" + ] + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "examples": [ + true + ] + }, + "template_repository": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "avatar_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + } + } + }, + "private": { + "type": "boolean" + }, + "html_url": { + "type": "string" + }, + "description": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "forks_url": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "git_url": { + "type": "string" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "ssh_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "clone_url": { + "type": "string" + }, + "mirror_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "svn_url": { + "type": "string" + }, + "homepage": { + "type": "string" + }, + "language": { + "type": "string" + }, + "forks_count": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "default_branch": { + "type": "string" + }, + "open_issues_count": { + "type": "integer" + }, + "is_template": { + "type": "boolean" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "type": "boolean" + }, + "has_projects": { + "type": "boolean" + }, + "has_wiki": { + "type": "boolean" + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "type": "boolean" + }, + "archived": { + "type": "boolean" + }, + "disabled": { + "type": "boolean" + }, + "visibility": { + "type": "string" + }, + "pushed_at": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "allow_rebase_merge": { + "type": "boolean" + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "type": "boolean" + }, + "allow_auto_merge": { + "type": "boolean" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "allow_update_branch": { + "type": "boolean" + }, + "use_squash_pr_title_as_default": { + "type": "boolean" + }, + "allow_merge_commit": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + } + } + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "examples": [ + true + ] + }, + "allow_auto_merge": { + "description": "Whether to allow Auto-merge to be used on pull requests.", + "default": false, + "type": "boolean", + "examples": [ + false + ] + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "examples": [ + false + ] + }, + "allow_update_branch": { + "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.", + "default": false, + "type": "boolean", + "examples": [ + false + ] + }, + "use_squash_pr_title_as_default": { + "type": "boolean", + "description": "Whether a squash merge commit can use the pull request title as default.", + "default": false + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "examples": [ + true + ] + }, + "allow_forking": { + "description": "Whether to allow forking this repo", + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "watchers": { + "type": "integer" + }, + "master_branch": { + "type": "string" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:42Z\"" + ] + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at" + ] + } + ] + }, + "temp_clone_token": { + "type": "string" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "code_of_conduct": { + "title": "Code Of Conduct", + "description": "Code Of Conduct", + "type": "object", + "properties": { + "key": { + "type": "string", + "examples": [ + "contributor_covenant" + ] + }, + "name": { + "type": "string", + "examples": [ + "Contributor Covenant" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/codes_of_conduct/contributor_covenant" + ] + }, + "body": { + "type": "string", + "examples": [ + "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response\n to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address,\n posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [EMAIL]. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n" + ] + }, + "html_url": { + "type": [ + "string", + "null" + ], + "format": "uri" + } + }, + "required": [ + "url", + "html_url", + "key", + "name" + ] + }, + "license": { + "type": [ + "object", + "null" + ], + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "node_id": { + "type": "string" + } + } + }, + "forks": { + "type": "integer", + "examples": [ + 0 + ] + }, + "open_issues": { + "type": "integer", + "examples": [ + 0 + ] + }, + "watchers": { + "type": "integer", + "examples": [ + 0 + ] + }, + "allow_forking": { + "type": "boolean" + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ] + }, + "score": { + "type": "number" + }, + "file_size": { + "type": "integer" + }, + "language": { + "type": [ + "string", + "null" + ] + }, + "last_modified_at": { + "type": "string", + "format": "date-time" + }, + "line_numbers": { + "type": "array", + "items": { + "type": "string" + }, + "examples": [ + "73..77", + "77..78" + ] + }, + "text_matches": { + "title": "Search Result Text Matches", + "type": "array", + "items": { + "type": "object", + "properties": { + "object_url": { + "type": "string" + }, + "object_type": { + "type": [ + "string", + "null" + ] + }, + "property": { + "type": "string" + }, + "fragment": { + "type": "string" + }, + "matches": { + "type": "array", + "items": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "indices": { + "type": "array", + "items": { + "type": "integer" + } + } + } + } + } + } + } + } + }, + "required": [ + "score", + "name", + "path", + "sha", + "git_url", + "html_url", + "url", + "repository" ] } - }, - "required": [ - "avatar_url", - "events_url", - "followers_url", - "following_url", - "gists_url", - "gravatar_id", - "html_url", - "id", - "node_id", - "login", - "organizations_url", - "received_events_url", - "repos_url", - "site_admin", - "starred_url", - "subscriptions_url", - "type", - "url" - ] + } } } \ No newline at end of file diff --git a/tools/unschema/parser.py b/tools/unschema/parser.py index cf62026..203f6a0 100644 --- a/tools/unschema/parser.py +++ b/tools/unschema/parser.py @@ -2,7 +2,8 @@ from __future__ import annotations __all__ = ("generate",) -from typing import Tuple # , Any +from random import randint +from typing import Tuple, Optional # , Any types = { "string": "str", @@ -24,7 +25,7 @@ types = { def _generate( - obj: dict, /, *, title: str = "GeneratedObject", no_comments: bool = False + obj: dict, /, *, title: Optional[str] = None, no_comments: bool = False ) -> Tuple[str, str]: # sourcery skip: low-code-quality """Makes TypedDict from a JSON Schema object. @@ -36,6 +37,9 @@ def _generate( Returns: The generated TypedDicts, the result values name and the comments. """ + if title is None: + title = f"GeneratedObject{randint(100, 200)}" + # The other TypedDicts result = [] @@ -209,7 +213,7 @@ if TYPE_CHECKING: def generate( - schema: dict, /, *, object_name: str = "GeneratedObject", no_comments: bool = False + schema: dict, /, *, object_name: Optional[str] = None, no_comments: bool = False ) -> str: generated = _generate(schema, title=object_name, no_comments=no_comments) - return text.format(generated, object_name) + return text.format(generated, object_name or "GeneratedObject")